don't move parents and children over when inserting desktops - cuz then they all get moved a bunch of times, just move the top direct parent
This commit is contained in:
parent
eb0e483405
commit
9091da403e
1 changed files with 13 additions and 3 deletions
|
@ -641,8 +641,14 @@ void screen_add_desktop(gboolean current)
|
||||||
|
|
||||||
for (it = client_list; it; it = g_list_next(it)) {
|
for (it = client_list; it; it = g_list_next(it)) {
|
||||||
ObClient *c = it->data;
|
ObClient *c = it->data;
|
||||||
if (c->desktop != DESKTOP_ALL && c->desktop >= screen_desktop)
|
if (c->desktop != DESKTOP_ALL && c->desktop >= screen_desktop &&
|
||||||
|
/* don't move direct children, they'll be moved with their
|
||||||
|
parent - which will have to be on the same desktop */
|
||||||
|
!client_direct_parent(c))
|
||||||
|
{
|
||||||
|
ob_debug("moving window %s\n", c->title);
|
||||||
client_set_desktop(c, c->desktop+1, FALSE, TRUE);
|
client_set_desktop(c, c->desktop+1, FALSE, TRUE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -670,9 +676,13 @@ void screen_remove_desktop(gboolean current)
|
||||||
if (WINDOW_IS_CLIENT(it->data)) {
|
if (WINDOW_IS_CLIENT(it->data)) {
|
||||||
ObClient *c = it->data;
|
ObClient *c = it->data;
|
||||||
guint d = c->desktop;
|
guint d = c->desktop;
|
||||||
if (d != DESKTOP_ALL && d >= movedesktop) {
|
if (d != DESKTOP_ALL && d >= movedesktop &&
|
||||||
client_set_desktop(c, c->desktop - 1, TRUE, TRUE);
|
/* don't move direct children, they'll be moved with their
|
||||||
|
parent - which will have to be on the same desktop */
|
||||||
|
!client_direct_parent(c))
|
||||||
|
{
|
||||||
ob_debug("moving window %s\n", c->title);
|
ob_debug("moving window %s\n", c->title);
|
||||||
|
client_set_desktop(c, c->desktop - 1, TRUE, TRUE);
|
||||||
}
|
}
|
||||||
/* raise all the windows that are on the current desktop which
|
/* raise all the windows that are on the current desktop which
|
||||||
is being merged */
|
is being merged */
|
||||||
|
|
Loading…
Reference in a new issue