summaryrefslogtreecommitdiff
path: root/openbox/focus_cycle.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2010-04-16 18:17:05 -0400
committerDana Jansens <danakj@orodu.net>2010-04-16 21:32:31 -0400
commit56fface3a4e2b5970e4867047207da84a58adeb2 (patch)
tree0c7a497e9d53878905ca197ab216b9d8097aa0db /openbox/focus_cycle.c
parentfde5d8601a182ae28fd65270766e51bea1f15a94 (diff)
add an option to next/previous window to only include hilited/flashing/urgent windows (feature req/bug #4341)
Diffstat (limited to 'openbox/focus_cycle.c')
-rw-r--r--openbox/focus_cycle.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/openbox/focus_cycle.c b/openbox/focus_cycle.c
index e4c370e7..d478093d 100644
--- a/openbox/focus_cycle.c
+++ b/openbox/focus_cycle.c
@@ -39,6 +39,7 @@ ObClient *focus_cycle_target = NULL;
static ObCycleType focus_cycle_type = OB_CYCLE_NONE;
static gboolean focus_cycle_iconic_windows;
static gboolean focus_cycle_all_desktops;
+static gboolean focus_cycle_nonhilite_windows;
static gboolean focus_cycle_dock_windows;
static gboolean focus_cycle_desktop_windows;
@@ -89,12 +90,13 @@ void focus_cycle_reorder()
TRUE);
focus_cycle_update_indicator(focus_cycle_target);
if (!focus_cycle_target)
- focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE,
+ focus_cycle(TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,
TRUE, TRUE, TRUE, TRUE, TRUE);
}
}
ObClient* focus_cycle(gboolean forward, gboolean all_desktops,
+ gboolean nonhilite_windows,
gboolean dock_windows, gboolean desktop_windows,
gboolean linear, gboolean interactive,
gboolean showbar, ObFocusCyclePopupMode mode,
@@ -126,6 +128,7 @@ ObClient* focus_cycle(gboolean forward, gboolean all_desktops,
if (focus_cycle_target == NULL) {
focus_cycle_iconic_windows = TRUE;
focus_cycle_all_desktops = all_desktops;
+ focus_cycle_nonhilite_windows = nonhilite_windows;
focus_cycle_dock_windows = dock_windows;
focus_cycle_desktop_windows = desktop_windows;
start = it = g_list_find(list, focus_client);
@@ -153,12 +156,7 @@ ObClient* focus_cycle(gboolean forward, gboolean all_desktops,
focus_cycle_draw_indicator(showbar ? ft : NULL);
}
/* same arguments as focus_target_valid */
- focus_cycle_popup_show(ft,
- focus_cycle_iconic_windows,
- focus_cycle_all_desktops,
- focus_cycle_dock_windows,
- focus_cycle_desktop_windows,
- mode);
+ focus_cycle_popup_show(ft, mode);
return focus_cycle_target;
} else if (ft != focus_cycle_target) {
focus_cycle_target = ft;
@@ -302,6 +300,7 @@ ObClient* focus_directional_cycle(ObDirection dir, gboolean dock_windows,
if (focus_cycle_target == NULL) {
focus_cycle_iconic_windows = FALSE;
focus_cycle_all_desktops = FALSE;
+ focus_cycle_nonhilite_windows = TRUE;
focus_cycle_dock_windows = dock_windows;
focus_cycle_desktop_windows = desktop_windows;
}
@@ -332,11 +331,7 @@ ObClient* focus_directional_cycle(ObDirection dir, gboolean dock_windows,
}
if (focus_cycle_target && dialog)
/* same arguments as focus_target_valid */
- focus_cycle_popup_single_show(focus_cycle_target,
- focus_cycle_iconic_windows,
- focus_cycle_all_desktops,
- focus_cycle_dock_windows,
- focus_cycle_desktop_windows);
+ focus_cycle_popup_single_show(focus_cycle_target);
return focus_cycle_target;
done_cycle:
@@ -357,6 +352,7 @@ gboolean focus_cycle_valid(struct _ObClient *client)
return focus_valid_target(client, screen_desktop, TRUE,
focus_cycle_iconic_windows,
focus_cycle_all_desktops,
+ focus_cycle_nonhilite_windows,
focus_cycle_dock_windows,
focus_cycle_desktop_windows,
FALSE);