diff --git a/src/animation/client.h b/src/animation/client.h index b77dd59..b7e3789 100644 --- a/src/animation/client.h +++ b/src/animation/client.h @@ -1030,7 +1030,7 @@ void resize(Client *c, struct wlr_box geo, int interact) { c->animainit_geom = c->geom; } - if (c->scratchpad_switching_mon) { + if (c->scratchpad_switching_mon && c->isfloating) { c->animainit_geom = c->geom; } diff --git a/src/layout/arrange.h b/src/layout/arrange.h index 1fc5552..404df45 100644 --- a/src/layout/arrange.h +++ b/src/layout/arrange.h @@ -597,6 +597,13 @@ arrange(Monitor *m, bool want_animation) { m->visible_tiling_clients = 0; wl_list_for_each(c, &clients, link) { + + if (c->mon == m && (c->isglobal || c->isunglobal)) { + c->tags = m->tagset[m->seltags]; + if (c->mon->sel == NULL) + focusclient(c, 0); + } + if (VISIBLEON(c, m)) { m->visible_clients++; if (ISTILED(c)) { @@ -611,12 +618,6 @@ arrange(Monitor *m, bool want_animation) { if (c->iskilling) continue; - if (c->mon == m && (c->isglobal || c->isunglobal)) { - c->tags = m->tagset[m->seltags]; - if (c->mon->sel == NULL) - focusclient(c, 0); - } - if (c->mon == m) { if (VISIBLEON(c, m)) { if (ISTILED(c)) {