summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-06-04 01:57:11 +0000
committerDana Jansens <danakj@orodu.net>2007-06-04 01:57:11 +0000
commit1e5d8ce0a84424bb0ec97b027f48c975c9578de1 (patch)
tree96e77b272a84af35cc3e69497a8e91e6c523b276 /openbox
parent350be88d3ce6aff4e9714d1f29adfd884772644e (diff)
when undermouse is off, ignore enter events from windows lowering/raising themsvelves (or from a pager restacking them)
Diffstat (limited to 'openbox')
-rw-r--r--openbox/event.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/openbox/event.c b/openbox/event.c
index 9f1146a3..97b0da84 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -1064,6 +1064,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
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 @@ static void event_handle_client(ObClient *client, XEvent *e)
}
/* 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 @@ static void event_handle_client(ObClient *client, XEvent *e)
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);