X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fscreen.c;h=d71c9eaafd5c039a9d3932f6399ec3d2ed2611fe;hb=0ef82a1bda21d37f931a2fb0062c6274e360108a;hp=34935f47d6ddc245729e17a35de56aa12f404e35;hpb=11df262d7eb56ae6af98af86cbfee8226107114d;p=chaz%2Fopenbox diff --git a/openbox/screen.c b/openbox/screen.c index 34935f47..d71c9eaa 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -289,10 +289,10 @@ gboolean screen_annex(const gchar *program_name) supported[i++] = prop_atoms.kde_net_wm_frame_strut; supported[i++] = prop_atoms.kde_net_wm_window_type_override; - supported[i++] = prop_atoms.openbox_wm_state_undecorated; + supported[i++] = prop_atoms.ob_wm_state_undecorated; supported[i++] = prop_atoms.openbox_pid; - supported[i++] = prop_atoms.openbox_config; - supported[i++] = prop_atoms.openbox_control; + supported[i++] = prop_atoms.ob_config; + supported[i++] = prop_atoms.ob_control; g_assert(i == num_support); PROP_SETA32(RootWindow(ob_display, ob_screen), @@ -312,8 +312,13 @@ void screen_startup(gboolean reconfig) desktop_cycle_popup = pager_popup_new(FALSE); pager_popup_height(desktop_cycle_popup, POPUP_HEIGHT); - if (reconfig) + if (reconfig) { + /* update the pager popup's width */ + pager_popup_text_width_to_strings(desktop_cycle_popup, + screen_desktop_names, + screen_num_desktops); return; + } /* get the initial size */ screen_resize(); @@ -658,7 +663,7 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear, { guint r, c; static guint d = (guint)-1; - guint ret; + guint ret, oldd; if (d == (guint)-1) d = screen_desktop; @@ -666,6 +671,7 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear, if ((cancel || done) && dialog) goto show_cycle_dialog; + oldd = d; get_row_col(d, &r, &c); if (linear) { @@ -691,19 +697,17 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear, case OB_DIRECTION_EAST: ++c; if (c >= screen_desktop_layout.columns) { - if (wrap) { + if (wrap) c = 0; - } else { - d = screen_desktop; + else goto show_cycle_dialog; - } } d = translate_row_col(r, c); if (d >= screen_num_desktops) { if (wrap) { ++c; } else { - d = screen_desktop; + d = oldd; goto show_cycle_dialog; } } @@ -711,19 +715,17 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear, case OB_DIRECTION_WEST: --c; if (c >= screen_desktop_layout.columns) { - if (wrap) { + if (wrap) c = screen_desktop_layout.columns - 1; - } else { - d = screen_desktop; + else goto show_cycle_dialog; - } } d = translate_row_col(r, c); if (d >= screen_num_desktops) { if (wrap) { --c; } else { - d = screen_desktop; + d = oldd; goto show_cycle_dialog; } } @@ -731,19 +733,17 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear, case OB_DIRECTION_SOUTH: ++r; if (r >= screen_desktop_layout.rows) { - if (wrap) { + if (wrap) r = 0; - } else { - d = screen_desktop; + else goto show_cycle_dialog; - } } d = translate_row_col(r, c); if (d >= screen_num_desktops) { if (wrap) { ++r; } else { - d = screen_desktop; + d = oldd; goto show_cycle_dialog; } } @@ -751,19 +751,17 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear, case OB_DIRECTION_NORTH: --r; if (r >= screen_desktop_layout.rows) { - if (wrap) { + if (wrap) r = screen_desktop_layout.rows - 1; - } else { - d = screen_desktop; + else goto show_cycle_dialog; - } } d = translate_row_col(r, c); if (d >= screen_num_desktops) { if (wrap) { --r; } else { - d = screen_desktop; + d = oldd; goto show_cycle_dialog; } }