diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-03-30 22:58:04 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-03-30 22:58:04 +0000 |
| commit | a6d9be4f664cefb144e0e7ebc9c49e04bb2714e1 (patch) | |
| tree | 5df6ed1eb5a13418e5a3d6538a375fc744de548b /openbox/event.c | |
| parent | 71ade2a9b913f5d13e02aa89e3c09729348c9f82 (diff) | |
yet more focus fixings. RevertToPointerRoot could mess things up focusing a client and us ignoring the FocusIn of Pointer type. this is all handled now.
Diffstat (limited to 'openbox/event.c')
| -rw-r--r-- | openbox/event.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/openbox/event.c b/openbox/event.c index ad14f5c8..8d1f4449 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -225,16 +225,6 @@ void event_process(XEvent *e) case FocusIn: g_message("FocusIn on %lx mode %d detail %d", window, e->xfocus.mode, e->xfocus.detail); - if (client == NULL) { - /* says a client was not found for the event! - this is important whether the event is a valid type for us or - not! this makes the evil known as mozilla not DESTROY my - precious wm!! YES ITS FIVE AM AND I AM NOT SANE RIGHT NOW. FOCUS - EVENTS WILL DRIVE YOU MAD. - */ - e->xfocus.window = None; - } - /* NotifyAncestor is not ignored in FocusIn like it is in FocusOut because of RevertToPointerRoot. If the focus ends up reverting to pointer root on a workspace change, then the FocusIn event that we @@ -242,8 +232,15 @@ void event_process(XEvent *e) for FocusOut, so it is safely ignored there. */ if (e->xfocus.detail == NotifyInferior || - e->xfocus.detail > NotifyNonlinearVirtual) return; - g_message("FocusIn on %lx", window); + e->xfocus.detail > NotifyNonlinearVirtual || client == NULL) { + /* says a client was not found for the event (or a valid FocusIn + event was not found. + */ + e->xfocus.window = None; + return; + } + + g_message("FocusIn on %lx", window); break; case FocusOut: g_message("FocusOut on %lx mode %d detail %d", window, |
