diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-05-19 20:31:08 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-05-19 20:31:08 +0000 |
| commit | 2253b5e341e2a20dee5c0c17eae3f5a8baa1b6ac (patch) | |
| tree | 72bdadc7031e6b71e3f5e129b51b33c7070fd4ad /openbox/focus_cycle_popup.c | |
| parent | 34ad5b92b4498e2f5de87d67e3b0a0e3eb67b4fb (diff) | |
fix the popup for directional focusing, only show what is going to be a valid target. change directional focus to use the same criteria as normal cycling.
Diffstat (limited to 'openbox/focus_cycle_popup.c')
| -rw-r--r-- | openbox/focus_cycle_popup.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/openbox/focus_cycle_popup.c b/openbox/focus_cycle_popup.c index 4d6ccdca..b171e942 100644 --- a/openbox/focus_cycle_popup.c +++ b/openbox/focus_cycle_popup.c @@ -71,9 +71,13 @@ struct _ObFocusCyclePopup static ObFocusCyclePopup popup; static gchar *popup_get_name (ObClient *c); -static void popup_setup (ObFocusCyclePopup *p,gboolean all_desktops, - gboolean dock_windows, gboolean desktop_windows); -static void popup_render (ObFocusCyclePopup *p, const ObClient *c); +static void popup_setup (ObFocusCyclePopup *p, + gboolean iconic_windows, + gboolean all_desktops, + gboolean dock_windows, + gboolean desktop_windows); +static void popup_render (ObFocusCyclePopup *p, + const ObClient *c); static Window create_window(Window parent, guint bwidth, gulong mask, XSetWindowAttributes *attr) @@ -142,7 +146,8 @@ void focus_cycle_popup_shutdown(gboolean reconfig) RrAppearanceFree(popup.a_bg); } -static void popup_setup(ObFocusCyclePopup *p,gboolean all_desktops, +static void popup_setup(ObFocusCyclePopup *p, + gboolean iconic_windows, gboolean all_desktops, gboolean dock_windows, gboolean desktop_windows) { gint maxwidth, n; @@ -161,6 +166,7 @@ static void popup_setup(ObFocusCyclePopup *p,gboolean all_desktops, ObClient *ft = it->data; if (focus_cycle_target_valid(ft, + iconic_windows, all_desktops, dock_windows, desktop_windows)) @@ -410,7 +416,7 @@ static void popup_render(ObFocusCyclePopup *p, const ObClient *c) p->last_target = newtarget; } -void focus_cycle_popup_show(ObClient *c, +void focus_cycle_popup_show(ObClient *c, gboolean iconic_windows, gboolean all_desktops, gboolean dock_windows, gboolean desktop_windows) { @@ -418,7 +424,8 @@ void focus_cycle_popup_show(ObClient *c, /* do this stuff only when the dialog is first showing */ if (!popup.mapped) - popup_setup(&popup, all_desktops, dock_windows, desktop_windows); + popup_setup(&popup, iconic_windows, all_desktops, + dock_windows, desktop_windows); g_assert(popup.targets != NULL); popup_render(&popup, c); |
