when undermouse is off, ignore enter events from windows lowering/raising themsvelves (or from a pager restacking them)
Dana Jansens danakj@orodu.net
2 files changed,
13 insertions(+),
1 deletions(-)
M
data/rc.xml
→
data/rc.xml
@@ -26,7 +26,7 @@ <!-- when followMouse is enabled, the mouse must be inside the window for
this many milliseconds (1000 = 1 sec) before moving focus to it --> <raiseOnFocus>no</raiseOnFocus> <!-- when followMouse is enabled, and a window is given focus by moving the - mouse into it, also raise the window --> +s mouse into it, also raise the window --> </focus> <placement>
M
openbox/event.c
→
openbox/event.c
@@ -1064,6 +1064,7 @@
if (e->xconfigurerequest.value_mask & CWStackMode) { ObClient *sibling = NULL; + gulong ignore_start; /* get the sibling */ if (e->xconfigurerequest.value_mask & CWSibling) {@@ -1075,9 +1076,13 @@ sibling = WINDOW_AS_CLIENT(win);
} /* activate it rather than just focus it */ + if (!config_focus_under_mouse) + ignore_start = event_start_ignore_all_enters(); stacking_restack_request(client, sibling, e->xconfigurerequest.detail, TRUE); + if (!config_focus_under_mouse) + event_end_ignore_all_enters(ignore_start); /* if a stacking change moves the window without resizing */ move = TRUE;@@ -1420,9 +1425,16 @@ e->xclient.data.l[2] == Above ||
e->xclient.data.l[2] == TopIf || e->xclient.data.l[2] == Opposite) { + gulong ignore_start; + + if (!config_focus_under_mouse) + ignore_start = event_start_ignore_all_enters(); /* just raise, don't activate */ stacking_restack_request(client, sibling, e->xclient.data.l[2], FALSE); + if (!config_focus_under_mouse) + event_end_ignore_all_enters(ignore_start); + /* send a synthetic ConfigureNotify, cuz this is supposed to be like a ConfigureRequest. */ client_reconfigure(client);