summaryrefslogtreecommitdiff
path: root/openbox/focus_cycle_popup.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-19 20:31:08 +0000
committerDana Jansens <danakj@orodu.net>2007-05-19 20:31:08 +0000
commit2253b5e341e2a20dee5c0c17eae3f5a8baa1b6ac (patch)
tree72bdadc7031e6b71e3f5e129b51b33c7070fd4ad /openbox/focus_cycle_popup.c
parent34ad5b92b4498e2f5de87d67e3b0a0e3eb67b4fb (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.c19
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);