--- a/dwm.c +++ b/dwm.c @@ -1937,7 +1937,8 @@ sendmon(Client *c, Monitor *m) c->tags = m->tagset[m->seltags]; /* assign tags of target monitor */ attachx(c); attachstack(c); - arrange(m); + if (!c->isfloating) + arrange(m); if (hadfocus) { focus(c); restack(m); @@ -2303,8 +2304,11 @@ tagmon(const Arg *arg) c->isfullscreen = 1; resizeclient(c, c->mon->mx, c->mon->my, c->mon->mw, c->mon->mh); XRaiseWindow(dpy, c->win); - } else + } else { sendmon(c, dest); + applyrules(c); + XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h); + } } void