summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
Diffstat (limited to 'openbox')
-rw-r--r--openbox/action.c4
-rw-r--r--openbox/screen.c32
2 files changed, 10 insertions, 26 deletions
diff --git a/openbox/action.c b/openbox/action.c
index c106ead9..4573a866 100644
--- a/openbox/action.c
+++ b/openbox/action.c
@@ -1531,9 +1531,7 @@ void action_desktop(union ActionData *data)
if (data->inter.any.interactive)
screen_desktop_popup(data->desktop.desk, TRUE);
}
- }
-
- if (!data->inter.any.interactive || data->inter.final)
+ } else
screen_desktop_popup(0, FALSE);
}
diff --git a/openbox/screen.c b/openbox/screen.c
index dea9d020..7814dce4 100644
--- a/openbox/screen.c
+++ b/openbox/screen.c
@@ -647,20 +647,12 @@ void screen_desktop_popup(guint d, gboolean show)
guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear,
gboolean dialog, gboolean done, gboolean cancel)
{
- static gboolean first = TRUE;
- static guint origd, d;
- guint r, c;
-
- if (cancel) {
- d = origd;
- goto done_cycle;
- } else if (done && dialog) {
- goto done_cycle;
- }
- if (first) {
- first = FALSE;
- d = origd = screen_desktop;
- }
+ guint d, r, c;
+
+ d = screen_desktop;
+
+ if ((cancel || done) && dialog)
+ goto show_cycle_dialog;
get_row_col(d, &r, &c);
@@ -773,16 +765,10 @@ guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear,
}
show_cycle_dialog:
- if (dialog) {
+ if (dialog && !cancel && !done) {
screen_desktop_popup(d, TRUE);
- return d;
- }
-
-done_cycle:
- first = TRUE;
-
- screen_desktop_popup(0, FALSE);
-
+ } else
+ screen_desktop_popup(0, FALSE);
return d;
}