From eb1cd9cc499da864b04cc39a2cf6bd8bf247248b Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Sun, 22 Apr 2007 20:10:17 +0000 Subject: [PATCH] ignore some focus events that shouldnt be reacted to --- openbox/event.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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 -- 2.45.2