diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-04-23 22:05:03 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-04-23 22:05:03 +0000 |
| commit | f999797f01755dcb5de3db010ad282feb8e3ac37 (patch) | |
| tree | f545ba0af9a2455b01d77799f564562b0dc60a0a | |
| parent | f507432c86bb54ab682805719fb730559f9e08e5 (diff) | |
leavenotify events messing up delayed focus
| -rw-r--r-- | openbox/event.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/openbox/event.c b/openbox/event.c index a4105c79..8d67ee93 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -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; |
