From c090f630114e6a40359aa92d18e05058bbe2282a Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sat, 26 May 2007 20:56:00 +0000 Subject: [PATCH] save the panels/dockwindows/desktopwindows/alldesktops options when the focus cycling popup is shown --- openbox/focus_cycle_popup.c | 40 +++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/openbox/focus_cycle_popup.c b/openbox/focus_cycle_popup.c index e282465e..c00ee840 100644 --- a/openbox/focus_cycle_popup.c +++ b/openbox/focus_cycle_popup.c @@ -74,13 +74,14 @@ static ObFocusCyclePopup popup; /*! This popup shows a single window */ static ObIconPopup *single_popup; +static gboolean cycle_iconic_windows; +static gboolean cycle_all_desktops; +static gboolean cycle_dock_windows; +static gboolean cycle_desktop_windows; + static gchar *popup_get_name (ObClient *c); static void popup_setup (ObFocusCyclePopup *p, - gboolean create_targets, - gboolean iconic_windows, - gboolean all_desktops, - gboolean dock_windows, - gboolean desktop_windows); + gboolean create_targets); static void popup_render (ObFocusCyclePopup *p, const ObClient *c); @@ -155,9 +156,7 @@ void focus_cycle_popup_shutdown(gboolean reconfig) RrAppearanceFree(popup.a_bg); } -static void popup_setup(ObFocusCyclePopup *p, gboolean create_targets, - gboolean iconic_windows, gboolean all_desktops, - gboolean dock_windows, gboolean desktop_windows) +static void popup_setup(ObFocusCyclePopup *p, gboolean create_targets) { gint maxwidth, n; GList *it; @@ -175,10 +174,10 @@ static void popup_setup(ObFocusCyclePopup *p, gboolean create_targets, ObClient *ft = it->data; if (focus_cycle_target_valid(ft, - iconic_windows, - all_desktops, - dock_windows, - desktop_windows)) + cycle_iconic_windows, + cycle_all_desktops, + cycle_dock_windows, + cycle_desktop_windows)) { gchar *text = popup_get_name(ft); @@ -445,9 +444,13 @@ void focus_cycle_popup_show(ObClient *c, gboolean iconic_windows, g_assert(c != NULL); /* do this stuff only when the dialog is first showing */ - if (!popup.mapped) - popup_setup(&popup, TRUE, iconic_windows, all_desktops, - dock_windows, desktop_windows); + if (!popup.mapped) { + cycle_iconic_windows = iconic_windows; + cycle_all_desktops = all_desktops; + cycle_dock_windows = dock_windows; + cycle_desktop_windows = desktop_windows; + popup_setup(&popup, TRUE); + } g_assert(popup.targets != NULL); popup_render(&popup, c); @@ -499,8 +502,11 @@ void focus_cycle_popup_single_show(struct _ObClient *c, if (!popup.mapped) { Rect *a; - popup_setup(&popup, FALSE, iconic_windows, all_desktops, - dock_windows, desktop_windows); + cycle_iconic_windows = iconic_windows; + cycle_all_desktops = all_desktops; + cycle_dock_windows = dock_windows; + cycle_desktop_windows = desktop_windows; + popup_setup(&popup, FALSE); g_assert(popup.targets == NULL); /* position the popup */ -- 2.39.2