From: Dana Jansens Date: Thu, 9 Oct 2003 18:49:14 +0000 (+0000) Subject: cancel focus delays when the user runs a focus (or focus cycle) action, and when... X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=bb5294199982817a84cd6b5c1197115389cbad56;p=chaz%2Fopenbox cancel focus delays when the user runs a focus (or focus cycle) action, and when focusing new windows --- diff --git a/openbox/action.c b/openbox/action.c index 5cce18a3..bac08787 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -994,6 +994,10 @@ void action_activate(union ActionData *data) void action_focus(union ActionData *data) { + /* if using focus_delay, stop the timer now so that focus doesn't go moving + on us */ + event_halt_focus_delay(); + client_focus(data->client.any.c); } @@ -1380,6 +1384,10 @@ void action_showmenu(union ActionData *data) void action_cycle_windows(union ActionData *data) { + /* if using focus_delay, stop the timer now so that focus doesn't go moving + on us */ + event_halt_focus_delay(); + focus_cycle(data->cycle.forward, data->cycle.linear, data->cycle.dialog, data->cycle.inter.final, data->cycle.inter.cancel); @@ -1387,6 +1395,10 @@ void action_cycle_windows(union ActionData *data) void action_directional_focus(union ActionData *data) { + /* if using focus_delay, stop the timer now so that focus doesn't go moving + on us */ + event_halt_focus_delay(); + focus_directional_cycle(data->interdiraction.direction, data->interdiraction.dialog, data->interdiraction.inter.final, diff --git a/openbox/client.c b/openbox/client.c index b562283b..feaa24df 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -359,7 +359,13 @@ void client_manage(Window window) a window maps since its not based on an action from the user like clicking a window to activate is. so keep the new window out of the way but do focus it. */ - if (activate) client_focus(self); + if (activate) { + /* if using focus_delay, stop the timer now so that focus doesn't go + moving on us */ + event_halt_focus_delay(); + + client_focus(self); + } /* client_activate does this but we aret using it so we have to do it here as well */