| 
																	
																	
																	
																 | 
																@ -1,3 +1,4 @@ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#define XINULATOR /* debug, simulates dual head */ | 
															
														
														
													
														
															
																 | 
																 | 
																/* See LICENSE file for copyright and license details. | 
																 | 
																 | 
																/* See LICENSE file for copyright and license details. | 
															
														
														
													
														
															
																 | 
																 | 
																 * | 
																 | 
																 | 
																 * | 
															
														
														
													
														
															
																 | 
																 | 
																 * dynamic window manager is designed like any other X client as well. It is | 
																 | 
																 | 
																 * dynamic window manager is designed like any other X client as well. It is | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1158,7 +1159,6 @@ movemouse(const Arg *arg) { | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																Client * | 
																 | 
																 | 
																Client * | 
															
														
														
													
														
															
																 | 
																 | 
																nexttiled(Client *c) { | 
																 | 
																 | 
																nexttiled(Client *c) { | 
															
														
														
													
														
															
																 | 
																 | 
																	// TODO: m handling | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																	for(; c && (c->isfloating || !ISVISIBLE(c)); c = c->next); | 
																 | 
																 | 
																	for(; c && (c->isfloating || !ISVISIBLE(c)); c = c->next); | 
															
														
														
													
														
															
																 | 
																 | 
																	return c; | 
																 | 
																 | 
																	return c; | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1593,8 +1593,10 @@ unmanage(Client *c) { | 
															
														
														
													
														
															
																 | 
																 | 
																	XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */ | 
																 | 
																 | 
																	XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */ | 
															
														
														
													
														
															
																 | 
																 | 
																	detach(c); | 
																 | 
																 | 
																	detach(c); | 
															
														
														
													
														
															
																 | 
																 | 
																	detachstack(c); | 
																 | 
																 | 
																	detachstack(c); | 
															
														
														
													
														
															
																 | 
																 | 
																	if(selmon->sel == c) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	if(c->mon->sel == c) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		c->mon->sel = c->mon->stack; | 
															
														
														
													
														
															
																 | 
																 | 
																		focus(NULL); | 
																 | 
																 | 
																		focus(NULL); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																	XUngrabButton(dpy, AnyButton, AnyModifier, c->win); | 
																 | 
																 | 
																	XUngrabButton(dpy, AnyButton, AnyModifier, c->win); | 
															
														
														
													
														
															
																 | 
																 | 
																	setclientstate(c, WithdrawnState); | 
																 | 
																 | 
																	setclientstate(c, WithdrawnState); | 
															
														
														
													
														
															
																 | 
																 | 
																	free(c); | 
																 | 
																 | 
																	free(c); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -1651,7 +1653,9 @@ updategeom(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																	Client *c; | 
																 | 
																 | 
																	Client *c; | 
															
														
														
													
														
															
																 | 
																 | 
																	Monitor *newmons = NULL, *m, *tm; | 
																 | 
																 | 
																	Monitor *newmons = NULL, *m, *tm; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																#ifdef XINERAMA | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#ifdef XINULATOR | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	n = 2; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#elif defined(XINERAMA) | 
															
														
														
													
														
															
																 | 
																 | 
																	XineramaScreenInfo *info = NULL; | 
																 | 
																 | 
																	XineramaScreenInfo *info = NULL; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	if(XineramaIsActive(dpy)) | 
																 | 
																 | 
																	if(XineramaIsActive(dpy)) | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -1665,7 +1669,23 @@ updategeom(void) { | 
															
														
														
													
														
															
																 | 
																 | 
																	} | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																	/* initialise monitor(s) */ | 
																 | 
																 | 
																	/* initialise monitor(s) */ | 
															
														
														
													
														
															
																 | 
																 | 
																#ifdef XINERAMA | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#ifdef XINULATOR | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	if(1) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		m = newmons; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		m->screen_number = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		m->wx = sx; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		m->my = m->wy = sy; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		m->ww = sw; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		m->mh = m->wh = sh / 2; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		m = newmons->next; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		m->screen_number = 1; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		m->wx = sx; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		m->my = m->wy = sy + sh / 2; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		m->ww = sw; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																		m->mh = m->wh = sh / 2; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																	else | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																#elif defined(XINERAMA) | 
															
														
														
													
														
															
																 | 
																 | 
																	if(XineramaIsActive(dpy)) { | 
																 | 
																 | 
																	if(XineramaIsActive(dpy)) { | 
															
														
														
													
														
															
																 | 
																 | 
																		for(i = 0, m = newmons; m; m = m->next, i++) { | 
																 | 
																 | 
																		for(i = 0, m = newmons; m; m = m->next, i++) { | 
															
														
														
													
														
															
																 | 
																 | 
																			m->screen_number = info[i].screen_number; | 
																 | 
																 | 
																			m->screen_number = info[i].screen_number; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																	
																 | 
																
  |