diff -r 58d6543a151f dwm.c --- a/dwm.c Wed Oct 31 12:51:33 2007 +0100 +++ b/dwm.c Wed Oct 31 13:17:44 2007 +0100 @@ -1213,11 +1213,11 @@ void void resizemouse(Client *c) { int ocx, ocy; - int nw, nh; + int nw, nh, nx, ny; XEvent ev; - ocx = c->x; - ocy = c->y; + nx = ocx = c->x; + ny = ocy = c->y; if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, None, cursor[CurResize], CurrentTime) != GrabSuccess) return; @@ -1239,11 +1239,11 @@ resizemouse(Client *c) { break; case MotionNotify: XSync(dpy, False); - if((nw = ev.xmotion.x - ocx - 2 * c->border + 1) <= 0) - nw = 1; - if((nh = ev.xmotion.y - ocy - 2 * c->border + 1) <= 0) - nh = 1; - resize(c, c->x, c->y, nw, nh, True); + nx = ev.xmotion.x < ocx ? ev.xmotion.x : ocx; + ny = ev.xmotion.y < ocy ? ev.xmotion.y : ocy; + nw = abs(ev.xmotion.x - ocx - 2 * c->border) + 1; + nh = abs(ev.xmotion.y - ocy - 2 * c->border) + 1; + resize(c, nx, ny, nw, nh, True); break; } }