1125 ocy = c->y; |
1125 ocy = c->y; |
1126 if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, |
1126 if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, |
1127 None, cursor[CurResize], CurrentTime) != GrabSuccess) |
1127 None, cursor[CurResize], CurrentTime) != GrabSuccess) |
1128 return; |
1128 return; |
1129 XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1); |
1129 XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1); |
1130 for(;;) { |
1130 do { |
1131 XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask , &ev); |
1131 XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask , &ev); |
1132 switch(ev.type) { |
1132 switch(ev.type) { |
1133 case ButtonRelease: |
|
1134 XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, |
|
1135 c->w + c->bw - 1, c->h + c->bw - 1); |
|
1136 XUngrabPointer(dpy, CurrentTime); |
|
1137 while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); |
|
1138 return; |
|
1139 case ConfigureRequest: |
1133 case ConfigureRequest: |
1140 case Expose: |
1134 case Expose: |
1141 case MapRequest: |
1135 case MapRequest: |
1142 handler[ev.type](&ev); |
1136 handler[ev.type](&ev); |
1143 break; |
1137 break; |
1155 if(!lt[sellt]->arrange || c->isfloating) |
1149 if(!lt[sellt]->arrange || c->isfloating) |
1156 resize(c, c->x, c->y, nw, nh, True); |
1150 resize(c, c->x, c->y, nw, nh, True); |
1157 break; |
1151 break; |
1158 } |
1152 } |
1159 } |
1153 } |
|
1154 while(ev.type != ButtonRelease); |
|
1155 XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1); |
|
1156 XUngrabPointer(dpy, CurrentTime); |
|
1157 while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); |
1160 } |
1158 } |
1161 |
1159 |
1162 void |
1160 void |
1163 restack(void) { |
1161 restack(void) { |
1164 Client *c; |
1162 Client *c; |