ignore some focus events that shouldnt be reacted to
Dana Jansens danakj@orodu.net
1 files changed,
6 insertions(+),
5 deletions(-)
jump to
M
openbox/event.c
→
openbox/event.c
@@ -348,10 +348,6 @@ /* This means focus moved from one client to another */
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 @@ /* crossing events for menu */
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