diff options
| -rw-r--r-- | dwm.c | 35 | 
1 files changed, 11 insertions, 24 deletions
| @@ -1,4 +1,4 @@ -#define XINULATOR /* debug, simulates dual head */ +//#define XINULATOR /* debug, simulates dual head */  /* See LICENSE file for copyright and license details.   *   * dynamic window manager is designed like any other X client as well. It is @@ -1649,9 +1649,11 @@ updatebarpos(Monitor *m) {  void  updategeom(void) { -	int i, n = 1; +	int i, di, n = 1, x, y; +	unsigned int dui;  	Client *c;  	Monitor *newmons = NULL, *m, *tm; +	Window dummy;  #ifdef XINULATOR  	n = 2; @@ -1720,16 +1722,6 @@ updategeom(void) {  		m->showbar = showbar;  		m->topbar = topbar;  		updatebarpos(m); -		/* reassign all clients with same screen number */ -		for(tm = mons; tm; tm = tm->next) -			if(tm->screen_number == m->screen_number) { -				m->clients = tm->clients; -				m->sel = m->stack = tm->stack; -				tm->clients = NULL; -				tm->stack = NULL; -				for(c = m->clients; c; c = c->next) -					c->mon = m; -			}  	}  	/* reassign left over clients of disappeared monitors */ @@ -1744,18 +1736,13 @@ updategeom(void) {  	}  	/* select focused monitor */ -	if(!selmon) { -		selmon = newmons; -		int di, x, y; -		unsigned int dui; -		Window dummy; -		if(XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui))  -			for(m = newmons; m; m = m->next) -				if(INRECT(x, y, m->wx, m->wy, m->ww, m->wh)) { -					selmon = m; -					break; -				} -	} +	selmon = newmons; +	if(XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui))  +		for(m = newmons; m; m = m->next) +			if(INRECT(x, y, m->wx, m->wy, m->ww, m->wh)) { +				selmon = m; +				break; +			}  	/* final assignment of new monitors */  	cleanupmons(); | 
