diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-06-03 19:09:32 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-06-03 19:09:32 +0000 |
| commit | 4940d007cce43a135f1b448902f5a3571dbce62a (patch) | |
| tree | 4c5c0a9e25dc7f8b9c55634df3ccaa6fe816ddf7 /openbox/client.c | |
| parent | 097d02d9d3d4b2eeea11084c54812de9cd7d14c0 (diff) | |
super amazing enter event skipping.
also mucho fixed for <underMouse>
Diffstat (limited to 'openbox/client.c')
| -rw-r--r-- | openbox/client.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/openbox/client.c b/openbox/client.c index 9b4932a0..daa65379 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -629,6 +629,7 @@ void client_unmanage(ObClient *self) { guint j; GSList *it; + gulong ignore_start; ob_debug("Unmanaging window: 0x%x plate 0x%x (%s) (%s)\n", self->window, self->frame->window, @@ -640,15 +641,16 @@ void client_unmanage(ObClient *self) don't generate more events */ XSelectInput(ob_display, self->window, NoEventMask); + /* ignore enter events from the unmap so it doesnt mess with the focus */ + if (!client_focused(self) || !config_focus_under_mouse) + ignore_start = event_start_ignore_all_enters(); + frame_hide(self->frame); /* flush to send the hide to the server quickly */ XFlush(ob_display); - if (!client_focused(self) || !config_focus_under_mouse) { - /* ignore enter events from the unmap so it doesnt mess with the - focus */ - event_ignore_all_queued_enters(); - } + if (!client_focused(self) || !config_focus_under_mouse) + event_end_ignore_all_enters(ignore_start); mouse_grab_for_client(self, FALSE); |
