dwm.c
changeset 1334 6f9cf8bcc4a7
parent 1333 5be4e277ed7c
child 1335 83da51dfedd3
equal deleted inserted replaced
1333:5be4e277ed7c 1334:6f9cf8bcc4a7
   959 	XEvent ev;
   959 	XEvent ev;
   960 
   960 
   961 	if(!(c = sel))
   961 	if(!(c = sel))
   962 		return;
   962 		return;
   963 	restack();
   963 	restack();
   964 	ocx = nx = c->x;
   964 	ocx = c->x;
   965 	ocy = ny = c->y;
   965 	ocy = c->y;
   966 	if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
   966 	if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
   967 	None, cursor[CurMove], CurrentTime) != GrabSuccess)
   967 	None, cursor[CurMove], CurrentTime) != GrabSuccess)
   968 		return;
   968 		return;
   969 	XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui);
   969 	XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui);
   970 	for(;;) {
   970 	do {
   971 		XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev);
   971 		XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev);
   972 		switch (ev.type) {
   972 		switch (ev.type) {
   973 		case ButtonRelease:
       
   974 			XUngrabPointer(dpy, CurrentTime);
       
   975 			return;
       
   976 		case ConfigureRequest:
   973 		case ConfigureRequest:
   977 		case Expose:
   974 		case Expose:
   978 		case MapRequest:
   975 		case MapRequest:
   979 			handler[ev.type](&ev);
   976 			handler[ev.type](&ev);
   980 			break;
   977 			break;
   998 			if(!lt[sellt]->arrange || c->isfloating)
   995 			if(!lt[sellt]->arrange || c->isfloating)
   999 				resize(c, nx, ny, c->w, c->h, False);
   996 				resize(c, nx, ny, c->w, c->h, False);
  1000 			break;
   997 			break;
  1001 		}
   998 		}
  1002 	}
   999 	}
       
  1000 	while(ev.type != ButtonRelease);
       
  1001 	XUngrabPointer(dpy, CurrentTime);
  1003 }
  1002 }
  1004 
  1003 
  1005 Client *
  1004 Client *
  1006 nexttiled(Client *c) {
  1005 nexttiled(Client *c) {
  1007 	for(; c && (c->isfloating || !ISVISIBLE(c)); c = c->next);
  1006 	for(; c && (c->isfloating || !ISVISIBLE(c)); c = c->next);