|  | @ -117,7 +117,6 @@ typedef struct { | 
														
													
														
															
																|  |  | } Regs; |  |  | } Regs; | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | typedef struct { |  |  | typedef struct { | 
														
													
														
															
																|  |  | int monitor; |  |  |  | 
														
													
														
															
																|  |  | Window barwin; |  |  | Window barwin; | 
														
													
														
															
																|  |  | int sx, sy, sw, sh, wax, way, wah, waw; |  |  | int sx, sy, sw, sh, wax, way, wah, waw; | 
														
													
														
															
																|  |  | Bool *seltags; |  |  | Bool *seltags; | 
														
													
												
													
														
															
																|  | @ -1164,11 +1163,13 @@ void | 
														
													
														
															
																|  |  | movemouse(Client *c) { |  |  | movemouse(Client *c) { | 
														
													
														
															
																|  |  | int x1, y1, ocx, ocy, di, nx, ny; |  |  | int x1, y1, ocx, ocy, di, nx, ny; | 
														
													
														
															
																|  |  | unsigned int dui; |  |  | unsigned int dui; | 
														
													
														
															
																|  |  |  |  |  | Monitor *m; | 
														
													
														
															
																|  |  | Window dummy; |  |  | Window dummy; | 
														
													
														
															
																|  |  | XEvent ev; |  |  | XEvent ev; | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | ocx = nx = c->x; |  |  | ocx = nx = c->x; | 
														
													
														
															
																|  |  | ocy = ny = c->y; |  |  | ocy = ny = c->y; | 
														
													
														
															
																|  |  |  |  |  | m = &monitors[c->monitor]; | 
														
													
														
															
																|  |  | if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, |  |  | if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, | 
														
													
														
															
																|  |  | None, cursor[CurMove], CurrentTime) != GrabSuccess) |  |  | None, cursor[CurMove], CurrentTime) != GrabSuccess) | 
														
													
														
															
																|  |  | return; |  |  | return; | 
														
													
												
													
														
															
																|  | @ -1188,7 +1189,6 @@ movemouse(Client *c) { | 
														
													
														
															
																|  |  | XSync(dpy, False); |  |  | XSync(dpy, False); | 
														
													
														
															
																|  |  | nx = ocx + (ev.xmotion.x - x1); |  |  | nx = ocx + (ev.xmotion.x - x1); | 
														
													
														
															
																|  |  | ny = ocy + (ev.xmotion.y - y1); |  |  | ny = ocy + (ev.xmotion.y - y1); | 
														
													
														
															
																|  |  | Monitor *m = &monitors[monitorat()]; |  |  |  | 
														
													
														
															
																|  |  | if(abs(m->wax - nx) < SNAP) |  |  | if(abs(m->wax - nx) < SNAP) | 
														
													
														
															
																|  |  | nx = m->wax; |  |  | nx = m->wax; | 
														
													
														
															
																|  |  | else if(abs((m->wax + m->waw) - (nx + c->w + 2 * c->border)) < SNAP) |  |  | else if(abs((m->wax + m->waw) - (nx + c->w + 2 * c->border)) < SNAP) | 
														
													
												
													
														
															
																|  | @ -1197,11 +1197,10 @@ movemouse(Client *c) { | 
														
													
														
															
																|  |  | ny = m->way; |  |  | ny = m->way; | 
														
													
														
															
																|  |  | else if(abs((m->way + m->wah) - (ny + c->h + 2 * c->border)) < SNAP) |  |  | else if(abs((m->way + m->wah) - (ny + c->h + 2 * c->border)) < SNAP) | 
														
													
														
															
																|  |  | ny = m->way + m->wah - c->h - 2 * c->border; |  |  | ny = m->way + m->wah - c->h - 2 * c->border; | 
														
													
														
															
																|  |  | if((monitors[selmonitor].layout->arrange != floating) && (abs(nx - c->x) > SNAP || abs(ny - c->y) > SNAP)) |  |  |  | 
														
													
														
															
																|  |  |  |  |  | if((m->layout->arrange != floating) && (abs(nx - c->x) > SNAP || abs(ny - c->y) > SNAP)) | 
														
													
														
															
																|  |  | togglefloating(NULL); |  |  | togglefloating(NULL); | 
														
													
														
															
																|  |  | if((monitors[selmonitor].layout->arrange == floating) || c->isfloating) |  |  |  | 
														
													
														
															
																|  |  |  |  |  | if((m->layout->arrange == floating) || c->isfloating) | 
														
													
														
															
																|  |  | resize(c, nx, ny, c->w, c->h, False); |  |  | resize(c, nx, ny, c->w, c->h, False); | 
														
													
														
															
																|  |  | memcpy(c->tags, monitors[monitorat()].seltags, sizeof initags); |  |  |  | 
														
													
														
															
																|  |  | break; |  |  | break; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
												
													
														
															
																|  | @ -1335,10 +1334,12 @@ void | 
														
													
														
															
																|  |  | resizemouse(Client *c) { |  |  | resizemouse(Client *c) { | 
														
													
														
															
																|  |  | int ocx, ocy; |  |  | int ocx, ocy; | 
														
													
														
															
																|  |  | int nw, nh; |  |  | int nw, nh; | 
														
													
														
															
																|  |  |  |  |  | Monitor *m; | 
														
													
														
															
																|  |  | XEvent ev; |  |  | XEvent ev; | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | ocx = c->x; |  |  | ocx = c->x; | 
														
													
														
															
																|  |  | ocy = c->y; |  |  | ocy = c->y; | 
														
													
														
															
																|  |  |  |  |  | m = &monitors[c->monitor]; | 
														
													
														
															
																|  |  | if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, |  |  | if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, | 
														
													
														
															
																|  |  | None, cursor[CurResize], CurrentTime) != GrabSuccess) |  |  | None, cursor[CurResize], CurrentTime) != GrabSuccess) | 
														
													
														
															
																|  |  | return; |  |  | return; | 
														
													
												
													
														
															
																|  | @ -1363,9 +1364,9 @@ resizemouse(Client *c) { | 
														
													
														
															
																|  |  | nw = 1; |  |  | nw = 1; | 
														
													
														
															
																|  |  | if((nh = ev.xmotion.y - ocy - 2 * c->border + 1) <= 0) |  |  | if((nh = ev.xmotion.y - ocy - 2 * c->border + 1) <= 0) | 
														
													
														
															
																|  |  | nh = 1; |  |  | nh = 1; | 
														
													
														
															
																|  |  | if((monitors[selmonitor].layout->arrange != floating) && (abs(nw - c->w) > SNAP || abs(nh - c->h) > SNAP)) |  |  |  | 
														
													
														
															
																|  |  |  |  |  | if((m->layout->arrange != floating) && (abs(nw - c->w) > SNAP || abs(nh - c->h) > SNAP)) | 
														
													
														
															
																|  |  | togglefloating(NULL); |  |  | togglefloating(NULL); | 
														
													
														
															
																|  |  | if((monitors[selmonitor].layout->arrange == floating) || c->isfloating) |  |  |  | 
														
													
														
															
																|  |  |  |  |  | if((m->layout->arrange == floating) || c->isfloating) | 
														
													
														
															
																|  |  | resize(c, c->x, c->y, nw, nh, True); |  |  | resize(c, c->x, c->y, nw, nh, True); | 
														
													
														
															
																|  |  | break; |  |  | break; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
												
													
														
															
																|  | @ -1600,8 +1601,6 @@ setup(void) { | 
														
													
														
															
																|  |  | /* init geometry */ |  |  | /* init geometry */ | 
														
													
														
															
																|  |  | m = &monitors[i]; |  |  | m = &monitors[i]; | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | m->monitor = i; |  |  |  | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  | if (mcount != 1 && isxinerama) { |  |  | if (mcount != 1 && isxinerama) { | 
														
													
														
															
																|  |  | m->sx = info[i].x_org; |  |  | m->sx = info[i].x_org; | 
														
													
														
															
																|  |  | m->sy = info[i].y_org; |  |  | m->sy = info[i].y_org; | 
														
													
												
													
														
															
																|  | 
 |