X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fevent.c;h=432f39c5829b2bf838cdb115cb7f64ada9a681b9;hb=07a52aeaff0d8f429d9a740f49a85f22d51cf597;hp=f140bfcf17056c386fab33a08d6b7bb6144ef4f7;hpb=bf32b376b595eab16a300f63937cad1042361eec;p=chaz%2Fopenbox diff --git a/openbox/event.c b/openbox/event.c index f140bfcf..432f39c5 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -226,7 +226,7 @@ void event_process(XEvent *e) if (e->xfocus.detail == NotifyInferior || e->xfocus.detail == NotifyAncestor || e->xfocus.detail > NotifyNonlinearVirtual) return; - g_message("FocusIn on %lx", window);*/ + g_message("FocusIn on %lx", window); break; case FocusOut: g_message("FocusOut on %lx mode %d detail %d", window, @@ -245,8 +245,12 @@ void event_process(XEvent *e) if (fi.xfocus.window == e->xfocus.window) return; + /* secret magic way of event_process telling us that no client + was found for the FocusIn event */ + if (fi.xfocus.window == None) + focus_fallback(FALSE); } else - focus_set_client(NULL); + focus_fallback(FALSE); } break; case EnterNotify: @@ -270,6 +274,8 @@ void event_process(XEvent *e) event_handle_root(e); else if (e->type == MapRequest) client_manage(window); + else if (e->type == FocusIn) + e->xfocus.window = None; /* says no client was found for the event */ else if (e->type == ConfigureRequest) { /* unhandled configure requests must be used to configure the window directly */