diff -r 27410727480a event.c
--- a/event.c	Thu Apr 19 09:26:44 2007 +0200
+++ b/event.c	Mon May 07 07:26:45 2007 +0200
@@ -185,6 +185,10 @@ configurerequest(XEvent *e) {
 				c->w = ev->width;
 			if(ev->value_mask & CWHeight)
 				c->h = ev->height;
+			if((c->x + c->w) > sw && c->isfloating)
+				c->x = sw/2 - c->w/2; /* Center a float in x direction when being resized outside the screen */
+			if((c->y + c->h) > sh && c->isfloating)
+				c->y = sh/2 - c->h/2; /* Center a float in y direction when being resized outside the screen */
 			if((ev->value_mask & (CWX | CWY))
 			&& !(ev->value_mask & (CWWidth | CWHeight)))
 				configure(c);
