diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-06-04 01:57:11 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-06-04 01:57:11 +0000 |
| commit | 1e5d8ce0a84424bb0ec97b027f48c975c9578de1 (patch) | |
| tree | 96e77b272a84af35cc3e69497a8e91e6c523b276 /openbox | |
| parent | 350be88d3ce6aff4e9714d1f29adfd884772644e (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.c | 12 |
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); |
