ignore another type of crossing event, caused when leaving gtk popup menus
Dana Jansens danakj@orodu.net
1 files changed,
14 insertions(+),
2 deletions(-)
jump to
M
openbox/event.c
→
openbox/event.c
@@ -333,12 +333,24 @@ case EnterNotify:
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;