don't restack windows when they request it with an invalid sibling
This commit is contained in:
parent
551528c57f
commit
a9065160c9
1 changed files with 14 additions and 7 deletions
|
@ -1067,6 +1067,7 @@ static void event_handle_client(ObClient *client, XEvent *e)
|
||||||
if (e->xconfigurerequest.value_mask & CWStackMode) {
|
if (e->xconfigurerequest.value_mask & CWStackMode) {
|
||||||
ObClient *sibling = NULL;
|
ObClient *sibling = NULL;
|
||||||
gulong ignore_start;
|
gulong ignore_start;
|
||||||
|
gboolean ok = TRUE;
|
||||||
|
|
||||||
/* get the sibling */
|
/* get the sibling */
|
||||||
if (e->xconfigurerequest.value_mask & CWSibling) {
|
if (e->xconfigurerequest.value_mask & CWSibling) {
|
||||||
|
@ -1078,16 +1079,22 @@ static void event_handle_client(ObClient *client, XEvent *e)
|
||||||
{
|
{
|
||||||
sibling = WINDOW_AS_CLIENT(win);
|
sibling = WINDOW_AS_CLIENT(win);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
/* an invalid sibling was specified so don't restack at
|
||||||
|
all, it won't make sense no matter what we do */
|
||||||
|
ok = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ok) {
|
||||||
if (!config_focus_under_mouse)
|
if (!config_focus_under_mouse)
|
||||||
ignore_start = event_start_ignore_all_enters();
|
ignore_start = event_start_ignore_all_enters();
|
||||||
stacking_restack_request(client, sibling,
|
stacking_restack_request(client, sibling,
|
||||||
e->xconfigurerequest.detail);
|
e->xconfigurerequest.detail);
|
||||||
if (!config_focus_under_mouse)
|
if (!config_focus_under_mouse)
|
||||||
event_end_ignore_all_enters(ignore_start);
|
event_end_ignore_all_enters(ignore_start);
|
||||||
|
}
|
||||||
|
|
||||||
/* if a stacking change moves the window without resizing */
|
/* a stacking change moves the window without resizing */
|
||||||
move = TRUE;
|
move = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue