only add non-nonintrusively when both windows share a stacking layer
This commit is contained in:
parent
6ddb059783
commit
3424de66b2
1 changed files with 18 additions and 14 deletions
|
@ -110,6 +110,8 @@ void stacking_raise(ObWindow *window)
|
|||
{
|
||||
g_assert(stacking_list != NULL); /* this would be bad */
|
||||
|
||||
g_message("RAISING");
|
||||
|
||||
if (WINDOW_IS_CLIENT(window)) {
|
||||
Client *client = WINDOW_AS_CLIENT(window);
|
||||
|
||||
|
@ -243,15 +245,16 @@ void stacking_add_nonintrusive(ObWindow *win)
|
|||
if (!(it_before = g_list_find(stacking_list, parent))) {
|
||||
/* no parent to put above, try find the focused client to go
|
||||
under */
|
||||
if (focus_client && focus_client->layer == client->layer) {
|
||||
if ((it_before = g_list_find(stacking_list, focus_client)))
|
||||
it_before = it_before->next;
|
||||
else {
|
||||
}
|
||||
}
|
||||
if (!it_before) {
|
||||
/* out of ideas, just add it normally... */
|
||||
stacking_add(win);
|
||||
return;
|
||||
}
|
||||
}
|
||||
stacking_list = g_list_insert_before(stacking_list, it_before, win);
|
||||
} else {
|
||||
stacking_list = g_list_insert_before(stacking_list, it_before,win);
|
||||
|
||||
it_before = g_list_find(stacking_list, win)->prev;
|
||||
if (!it_before)
|
||||
|
@ -262,4 +265,5 @@ void stacking_add_nonintrusive(ObWindow *win)
|
|||
|
||||
XRestackWindows(ob_display, wins, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue