diff -r ee36ffbd4252 dwm.c --- a/dwm.c Sun Nov 06 20:36:23 2011 +0100 +++ b/dwm.c Mon Nov 14 15:37:53 2011 +0000 @@ -616,10 +616,10 @@ c->oldh = c->h; c->h = ev->height; } - if((c->x + c->w) > m->mx + m->mw && c->isfloating) - c->x = m->mx + (m->mw / 2 - WIDTH(c) / 2); /* center in x direction */ - if((c->y + c->h) > m->my + m->mh && c->isfloating) - c->y = m->my + (m->mh / 2 - HEIGHT(c) / 2); /* center in y direction */ + if(!INTERSECT(c->x, c->y, c->w, c->h, m) && c->isfloating) { + c->x = m->mx + (m->mw/2 - WIDTH(c) /2); + c->y = m->my + (m->mh/2 - HEIGHT(c)/2); + } if((ev->value_mask & (CWX|CWY)) && !(ev->value_mask & (CWWidth|CWHeight))) configure(c); if(ISVISIBLE(c))