cancel focus delays when the user runs a focus (or focus cycle) action, and when focusing new windows
Dana Jansens danakj@orodu.net
2 files changed,
19 insertions(+),
1 deletions(-)
M
openbox/action.c
→
openbox/action.c
@@ -994,6 +994,10 @@ }
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_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_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,
M
openbox/client.c
→
openbox/client.c
@@ -359,7 +359,13 @@ stuff like switch desktops etc and I'm not interested in all that when
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 */