cancel focus delays when the user runs a focus (or focus cycle) action, and when focusing new windows

This commit is contained in:
Dana Jansens 2003-10-09 18:49:14 +00:00
parent 8e34732b3a
commit bb52941999
2 changed files with 19 additions and 1 deletions

View file

@ -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,

View file

@ -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 */