all repos — openbox @ c090f630114e6a40359aa92d18e05058bbe2282a

openbox fork - make it a bit more like ryudo

save the panels/dockwindows/desktopwindows/alldesktops options when the focus cycling popup is shown
Dana Jansens danakj@orodu.net
commit

c090f630114e6a40359aa92d18e05058bbe2282a

parent

12bbc0cc430b32a71f9e868cf6cc6459bcc43e79

1 files changed, 23 insertions(+), 17 deletions(-)

jump to
M openbox/focus_cycle_popup.copenbox/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 @@ RrAppearanceFree(popup.a_text);

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 @@ for (it = g_list_last(focus_order); it; it = g_list_previous(it)) {

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 @@ {

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 @@ /* do this stuff only when the dialog is first showing */

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 */