From: Dana Jansens Date: Sun, 22 Apr 2007 20:10:17 +0000 (+0000) Subject: ignore some focus events that shouldnt be reacted to X-Git-Url: https://git.dogcows.com/gitweb?a=commitdiff_plain;h=eb1cd9cc499da864b04cc39a2cf6bd8bf247248b;p=chaz%2Fopenbox ignore some focus events that shouldnt be reacted to --- diff --git a/openbox/event.c b/openbox/event.c index 096f6272..47c7f7a7 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -348,10 +348,6 @@ static gboolean wanted_focusevent(XEvent *e) if (detail == NotifyNonlinearVirtual) return TRUE; - /* This means focus reverted off of a client */ - if (detail == NotifyInferior) - return TRUE; - /* Otherwise.. */ return FALSE; } else { @@ -391,7 +387,12 @@ static gboolean event_ignore(XEvent *e, ObClient *client) { switch(e->type) { case FocusIn: + if (!wanted_focusevent(e)) + return TRUE; + break; case FocusOut: + if (client == NULL) + return TRUE; if (!wanted_focusevent(e)) return TRUE; break; @@ -454,7 +455,7 @@ static void event_process(const XEvent *ec, gpointer data) event_handle_menu(e); } else if (e->type == FocusIn) { if (e->xfocus.detail == NotifyPointerRoot || - e->xfocus.detail == NotifyDetailNone) { + e->xfocus.detail == NotifyDetailNone) { ob_debug_type(OB_DEBUG_FOCUS, "Focus went to root\n"); /* Focus has been reverted to the root window or nothing FocusOut events come after UnmapNotify, so we don't need to