diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-03-24 23:19:45 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-03-24 23:19:45 +0000 |
| commit | eb2a0feb0154e86a1c6c117fd0f6d1a18959b694 (patch) | |
| tree | 341cf6129fe724edad9466a18310713489a3c74a /openbox/event.c | |
| parent | 4aa8d64f76b48f8c43eb39eeca1f61fcc8c7b61e (diff) | |
watch for reverttoparent reverting to the root window, which will create a DetailInferior focusin event on root.
adding some debug messages also which I am using..
Diffstat (limited to 'openbox/event.c')
| -rw-r--r-- | openbox/event.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/openbox/event.c b/openbox/event.c index b5703782..7e66cc28 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -329,7 +329,8 @@ static gboolean wanted_focusevent(XEvent *e) if (win == RootWindow(ob_display, ob_screen)) { /* This means focus reverted off of a client */ - if (detail == NotifyPointerRoot || detail == NotifyDetailNone) + if (detail == NotifyPointerRoot || detail == NotifyDetailNone || + detail == NotifyInferior) return TRUE; else return FALSE; @@ -688,7 +689,8 @@ static void event_handle_client(ObClient *client, XEvent *e) } else if (ce.xfocus.detail == NotifyInferior) { ob_debug("Focus went to parent\n"); /* Focus has been reverted to parent, which is our frame window, - so fall back to something other than the window which had it. */ + or the root window, so fall back to something other than the + window which had it. */ focus_fallback(FALSE); } else { /* Focus did move, so process the FocusIn event */ @@ -906,7 +908,10 @@ static void event_handle_client(ObClient *client, XEvent *e) } break; case UnmapNotify: - ob_debug("UnmapNotify for window 0x%x\n", client->window); + ob_debug("UnmapNotify for window 0x%x eventwin 0x%x sendevent %d " + "ignores left %d\n", + client->window, e->xunmap.event, e->xunmap.from_configure, + client->ignore_unmaps); if (client->ignore_unmaps) { client->ignore_unmaps--; break; @@ -932,6 +937,7 @@ static void event_handle_client(ObClient *client, XEvent *e) X server to deal with after we unmanage the window */ XPutBackEvent(ob_display, e); + ob_debug("ReparentNotify for window 0x%x\n", client->window); client_unmanage(client); break; case MapRequest: |
