diff options
Diffstat (limited to '')
| -rw-r--r-- | dwm.c | 68 | 
1 files changed, 34 insertions, 34 deletions
| @@ -1876,42 +1876,42 @@ updategeom(void)  				memcpy(&unique[j++], &info[i], sizeof(XineramaScreenInfo));  		XFree(info);  		nn = j; -		if (n <= nn) { /* new monitors available */ -			for (i = 0; i < (nn - n); i++) { -				for (m = mons; m && m->next; m = m->next); -				if (m) -					m->next = createmon(); -				else -					mons = createmon(); + +		/* new monitors if nn > n */ +		for (i = n; i < nn; i++) { +			for (m = mons; m && m->next; m = m->next); +			if (m) +				m->next = createmon(); +			else +				mons = createmon(); +		} +		for (i = 0, m = mons; i < nn && m; m = m->next, i++) +			if (i >= n +			|| unique[i].x_org != m->mx || unique[i].y_org != m->my +			|| unique[i].width != m->mw || unique[i].height != m->mh) +			{ +				dirty = 1; +				m->num = i; +				m->mx = m->wx = unique[i].x_org; +				m->my = m->wy = unique[i].y_org; +				m->mw = m->ww = unique[i].width; +				m->mh = m->wh = unique[i].height; +				updatebarpos(m);  			} -			for (i = 0, m = mons; i < nn && m; m = m->next, i++) -				if (i >= n -				|| unique[i].x_org != m->mx || unique[i].y_org != m->my -				|| unique[i].width != m->mw || unique[i].height != m->mh) -				{ -					dirty = 1; -					m->num = i; -					m->mx = m->wx = unique[i].x_org; -					m->my = m->wy = unique[i].y_org; -					m->mw = m->ww = unique[i].width; -					m->mh = m->wh = unique[i].height; -					updatebarpos(m); -				} -		} else { /* less monitors available nn < n */ -			for (i = nn; i < n; i++) { -				for (m = mons; m && m->next; m = m->next); -				while ((c = m->clients)) { -					dirty = 1; -					m->clients = c->next; -					detachstack(c); -					c->mon = mons; -					attach(c); -					attachstack(c); -				} -				if (m == selmon) -					selmon = mons; -				cleanupmon(m); +		/* removed monitors if n > nn */ +		for (i = nn; i < n; i++) { +			for (m = mons; m && m->next; m = m->next); +			while ((c = m->clients)) { +				dirty = 1; +				m->clients = c->next; +				detachstack(c); +				c->mon = mons; +				attach(c); +				attachstack(c);  			} +			if (m == selmon) +				selmon = mons; +			cleanupmon(m);  		}  		free(unique);  	} else | 
