| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -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; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
  |