summaryrefslogtreecommitdiff
path: root/openbox/screen.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-10-12 20:46:27 +0000
committerDana Jansens <danakj@orodu.net>2003-10-12 20:46:27 +0000
commita2543824e8ad648153353dcda0a7c76acc1370eb (patch)
treeb009f1791604a8faba9ab52d2a40c319b0fa3700 /openbox/screen.c
parentd8e7261309673d25a02868bf476ca55c2d9b3b3c (diff)
when not wrapping, still show the dialog when you reach an edge
Diffstat (limited to 'openbox/screen.c')
-rw-r--r--openbox/screen.c65
1 files changed, 49 insertions, 16 deletions
diff --git a/openbox/screen.c b/openbox/screen.c
index 05c292a2..544bcdbd 100644
--- a/openbox/screen.c
+++ b/openbox/screen.c
@@ -646,49 +646,81 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear,
case OB_DIRECTION_EAST:
++c;
if (c >= screen_desktop_layout.columns) {
- if (!wrap) return d = screen_desktop;
- c = 0;
+ if (wrap) {
+ c = 0;
+ } else {
+ d = screen_desktop;
+ goto show_cycle_dialog;
+ }
}
d = translate_row_col(r, c);
if (d >= screen_num_desktops) {
- if (!wrap) return d = screen_desktop;
- ++c;
+ if (wrap) {
+ ++c;
+ } else {
+ d = screen_desktop;
+ goto show_cycle_dialog;
+ }
}
break;
case OB_DIRECTION_WEST:
--c;
if (c >= screen_desktop_layout.columns) {
- if (!wrap) return d = screen_desktop;
- c = screen_desktop_layout.columns - 1;
+ if (wrap) {
+ c = screen_desktop_layout.columns - 1;
+ } else {
+ d = screen_desktop;
+ goto show_cycle_dialog;
+ }
}
d = translate_row_col(r, c);
if (d >= screen_num_desktops) {
- if (!wrap) return d = screen_desktop;
- --c;
+ if (wrap) {
+ --c;
+ } else {
+ d = screen_desktop;
+ goto show_cycle_dialog;
+ }
}
break;
case OB_DIRECTION_SOUTH:
++r;
if (r >= screen_desktop_layout.rows) {
- if (!wrap) return d = screen_desktop;
- r = 0;
+ if (wrap) {
+ r = 0;
+ } else {
+ d = screen_desktop;
+ goto show_cycle_dialog;
+ }
}
d = translate_row_col(r, c);
if (d >= screen_num_desktops) {
- if (!wrap) return d = screen_desktop;
- ++r;
+ if (wrap) {
+ ++r;
+ } else {
+ d = screen_desktop;
+ goto show_cycle_dialog;
+ }
}
break;
case OB_DIRECTION_NORTH:
--r;
if (r >= screen_desktop_layout.rows) {
- if (!wrap) return d = screen_desktop;
- r = screen_desktop_layout.rows - 1;
+ if (wrap) {
+ r = screen_desktop_layout.rows - 1;
+ } else {
+ d = screen_desktop;
+ goto show_cycle_dialog;
+ }
}
d = translate_row_col(r, c);
if (d >= screen_num_desktops) {
- if (!wrap) return d = screen_desktop;
- --r;
+ if (wrap) {
+ --r;
+ } else {
+ d = screen_desktop;
+ goto show_cycle_dialog;
+ }
}
break;
default:
@@ -699,6 +731,7 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear,
d = translate_row_col(r, c);
}
+show_cycle_dialog:
if (dialog) {
screen_desktop_popup(d, TRUE);
return d;