supported[i++] = prop_atoms.net_wm_action_fullscreen;
supported[i++] = prop_atoms.net_wm_action_change_desktop;
supported[i++] = prop_atoms.net_wm_action_close;
+ supported[i++] = prop_atoms.net_wm_action_above;
+ supported[i++] = prop_atoms.net_wm_action_below;
supported[i++] = prop_atoms.net_wm_state;
supported[i++] = prop_atoms.net_wm_state_modal;
supported[i++] = prop_atoms.net_wm_state_maximized_vert;
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();
{
guint r, c;
static guint d = (guint)-1;
- guint ret;
+ guint ret, oldd;
if (d == (guint)-1)
d = screen_desktop;
if ((cancel || done) && dialog)
goto show_cycle_dialog;
+ oldd = d;
get_row_col(d, &r, &c);
if (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;
}
}
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;
}
}
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;
}
}
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;
}
}