X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fevent.c;h=d7c80949c87d7944a5d5250fb99ca4988335b398;hb=fafcb6e476a90bdeb0c012e7c1eea912adcf0ec6;hp=e3efb289bd72e24d1cc419d7402f207afefb4ac1;hpb=889c5aab4f7f06ca396e5922ece436e48b88b098;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index e3efb289..d7c80949 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -645,9 +645,11 @@ static void event_handle_client(ObClient *client, XEvent *e) case OB_FRAME_CONTEXT_FRAME: /* XXX if doing a 'reconfigure' make sure you kill this timer, maybe all timers.. */ - if (config_focus_delay) { + if (config_focus_delay && client == focus_delay_client) { + ob_main_loop_timeout_remove_data(ob_main_loop, + focus_delay_func, + focus_delay_client); focus_delay_client = NULL; - ob_main_loop_timeout_remove(ob_main_loop, focus_delay_func); } default: break; @@ -695,7 +697,7 @@ static void event_handle_client(ObClient *client, XEvent *e) ob_main_loop_timeout_add(ob_main_loop, config_focus_delay, focus_delay_func, - NULL, NULL); + client, NULL); focus_delay_client = client; } else client_focus(client); @@ -1176,7 +1178,8 @@ static void focus_delay_client_dest(gpointer data) { ObClient *c = data; if (c == focus_delay_client) { + ob_main_loop_timeout_remove_data(ob_main_loop, focus_delay_func, + focus_delay_client); focus_delay_client = NULL; - ob_main_loop_timeout_remove(ob_main_loop, focus_delay_func); } }