From e384e8a42e933fd75fcb57d6a575b9903e55ebde Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Wed, 9 May 2007 04:16:31 +0000 Subject: [PATCH] make cycling desktops not move when cancelling --- openbox/action.c | 4 +--- openbox/screen.c | 32 +++++++++----------------------- 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; } -- 2.39.2