X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fevent.c;h=8d67ee93a6a555ae53da27a2d4704171e9711198;hb=d0013c0861e29433de10a849032382534c8e1659;hp=5bb0e2a09f4971d207bbde7e57a130e3a2da17b1;hpb=4543c1761a98f3feecf1630f5be78974753ee5f5;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index 5bb0e2a0..8d67ee93 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -2,7 +2,7 @@ event.c for the Openbox window manager Copyright (c) 2006 Mikael Magnusson - Copyright (c) 2003 Ben Jansens + Copyright (c) 2003-2007 Dana Jansens This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -733,12 +733,23 @@ static void event_handle_client(ObClient *client, XEvent *e) frame_adjust_state(client->frame); break; case OB_FRAME_CONTEXT_FRAME: + ob_debug_type(OB_DEBUG_FOCUS, + "%sNotify mode %d detail %d on %lx\n", + (e->type == EnterNotify ? "Enter" : "Leave"), + e->xcrossing.mode, + e->xcrossing.detail, (client?client->window:0)); if (keyboard_interactively_grabbed()) break; - if (config_focus_follow && config_focus_delay) + if (config_focus_follow && config_focus_delay && + /* leaveinferior events can happen when the mouse goes onto the + window's border and then into the window before the delay + is up */ + e->xcrossing.detail != NotifyInferior) + { ob_main_loop_timeout_remove_data(ob_main_loop, focus_delay_func, client, FALSE); + } break; default: break;