From: Dana Jansens Date: Fri, 18 Apr 2003 21:56:53 +0000 (+0000) Subject: ignore another type of crossing event, caused when leaving gtk popup menus X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=6a9e7dea8e9c20a65e5bb513ca9d7a92f3db47d3;p=chaz%2Fopenbox ignore another type of crossing event, caused when leaving gtk popup menus --- diff --git a/openbox/event.c b/openbox/event.c index 1db1829c..337841ac 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -333,12 +333,24 @@ static gboolean event_ignore(XEvent *e, Client *client) case LeaveNotify: /* NotifyUngrab occurs when a mouse button is released and the event is caused, like when lowering a window */ - /* NotifyVirtual occurs when ungrabbing the pointer */ + /* NotifyVirtual occurs when ungrabbing the pointer, + NotifyNonlinearVirtual occurs when closing a gtk app's menu */ if (e->xcrossing.mode == NotifyGrab || e->xcrossing.detail == NotifyInferior || (e->xcrossing.mode == NotifyUngrab && - e->xcrossing.detail == NotifyVirtual)) + (e->xcrossing.detail == NotifyVirtual || + e->xcrossing.detail == NotifyNonlinearVirtual))) { +#ifdef DEBUG_FOCUS + g_message("EnterNotify mode %d detail %d on %lx IGNORED", + e->xcrossing.mode, + e->xcrossing.detail, client?client->window:0); +#endif return TRUE; + } +#ifdef DEBUG_FOCUS + g_message("EnterNotify mode %d detail %d on %lx", e->xcrossing.mode, + e->xcrossing.detail, client?client->window:0); +#endif break; } return FALSE;