when not wrapping, still show the dialog when you reach an edge

This commit is contained in:
Dana Jansens 2003-10-12 20:46:27 +00:00
parent d8e7261309
commit a2543824e8

View file

@ -646,49 +646,81 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear,
case OB_DIRECTION_EAST: case OB_DIRECTION_EAST:
++c; ++c;
if (c >= screen_desktop_layout.columns) { if (c >= screen_desktop_layout.columns) {
if (!wrap) return d = screen_desktop; if (wrap) {
c = 0; c = 0;
} else {
d = screen_desktop;
goto show_cycle_dialog;
}
} }
d = translate_row_col(r, c); d = translate_row_col(r, c);
if (d >= screen_num_desktops) { if (d >= screen_num_desktops) {
if (!wrap) return d = screen_desktop; if (wrap) {
++c; ++c;
} else {
d = screen_desktop;
goto show_cycle_dialog;
}
} }
break; break;
case OB_DIRECTION_WEST: case OB_DIRECTION_WEST:
--c; --c;
if (c >= screen_desktop_layout.columns) { if (c >= screen_desktop_layout.columns) {
if (!wrap) return d = screen_desktop; if (wrap) {
c = screen_desktop_layout.columns - 1; c = screen_desktop_layout.columns - 1;
} else {
d = screen_desktop;
goto show_cycle_dialog;
}
} }
d = translate_row_col(r, c); d = translate_row_col(r, c);
if (d >= screen_num_desktops) { if (d >= screen_num_desktops) {
if (!wrap) return d = screen_desktop; if (wrap) {
--c; --c;
} else {
d = screen_desktop;
goto show_cycle_dialog;
}
} }
break; break;
case OB_DIRECTION_SOUTH: case OB_DIRECTION_SOUTH:
++r; ++r;
if (r >= screen_desktop_layout.rows) { if (r >= screen_desktop_layout.rows) {
if (!wrap) return d = screen_desktop; if (wrap) {
r = 0; r = 0;
} else {
d = screen_desktop;
goto show_cycle_dialog;
}
} }
d = translate_row_col(r, c); d = translate_row_col(r, c);
if (d >= screen_num_desktops) { if (d >= screen_num_desktops) {
if (!wrap) return d = screen_desktop; if (wrap) {
++r; ++r;
} else {
d = screen_desktop;
goto show_cycle_dialog;
}
} }
break; break;
case OB_DIRECTION_NORTH: case OB_DIRECTION_NORTH:
--r; --r;
if (r >= screen_desktop_layout.rows) { if (r >= screen_desktop_layout.rows) {
if (!wrap) return d = screen_desktop; if (wrap) {
r = screen_desktop_layout.rows - 1; r = screen_desktop_layout.rows - 1;
} else {
d = screen_desktop;
goto show_cycle_dialog;
}
} }
d = translate_row_col(r, c); d = translate_row_col(r, c);
if (d >= screen_num_desktops) { if (d >= screen_num_desktops) {
if (!wrap) return d = screen_desktop; if (wrap) {
--r; --r;
} else {
d = screen_desktop;
goto show_cycle_dialog;
}
} }
break; break;
default: default:
@ -699,6 +731,7 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear,
d = translate_row_col(r, c); d = translate_row_col(r, c);
} }
show_cycle_dialog:
if (dialog) { if (dialog) {
screen_desktop_popup(d, TRUE); screen_desktop_popup(d, TRUE);
return d; return d;