summaryrefslogtreecommitdiff
path: root/openbox/focus_cycle.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-06-10 17:58:52 +0000
committerDana Jansens <danakj@orodu.net>2007-06-10 17:58:52 +0000
commit220e568d75eaad436be403cd66d4e47d31d42392 (patch)
tree6c0db177375325b141e4de2b66076f5d064b201f /openbox/focus_cycle.c
parent897c70e8dd8e3f01c5f90f5a89c82762508e6667 (diff)
allow noninteractive directional focus.
make keybinds noninteractive when the last key in the chain has no modifiers (i think this is what the code was supposed to do but failed.) don't reset key chains during an interactive action. reset them after an interactive action finishes (honoring chroot) so you can <C-t><C-Up>Stuff<//> and it'll do stuff as you hit C-Up, you dont have to keep hitting C-t
Diffstat (limited to 'openbox/focus_cycle.c')
-rw-r--r--openbox/focus_cycle.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/openbox/focus_cycle.c b/openbox/focus_cycle.c
index ca299c67..f8ba8285 100644
--- a/openbox/focus_cycle.c
+++ b/openbox/focus_cycle.c
@@ -358,13 +358,13 @@ void focus_directional_cycle(ObDirection dir, gboolean dock_windows,
static ObClient *first = NULL;
ObClient *ft = NULL;
- if (!interactive)
- return;
+ g_print("interactive %d dialog %d done %d cancel %d\n",
+ interactive, dialog, done, cancel);
if (cancel) {
focus_cycle_target = NULL;
goto done_cycle;
- } else if (done)
+ } else if (done && interactive)
goto done_cycle;
if (!focus_order)
@@ -396,11 +396,11 @@ void focus_directional_cycle(ObDirection dir, gboolean dock_windows,
ft = it->data;
}
- if (ft) {
- if (ft != focus_cycle_target) {/* prevents flicker */
- focus_cycle_target = ft;
- focus_cycle_draw_indicator(ft);
- }
+ if (ft && ft != focus_cycle_target) {/* prevents flicker */
+ focus_cycle_target = ft;
+ if (!interactive)
+ goto done_cycle;
+ focus_cycle_draw_indicator(ft);
}
if (focus_cycle_target && dialog)
/* same arguments as focus_target_valid */