added some dual head simulator code
authorAnselm R Garbe <anselm@garbe.us>
Tue, 23 Jun 2009 19:00:32 +0100
changeset 1411 652fe08b6eaa
parent 1410 1bfaa3ddc995
child 1412 2bc44743117e
added some dual head simulator code
dwm.c
--- a/dwm.c	Tue Jun 23 17:39:42 2009 +0100
+++ b/dwm.c	Tue Jun 23 19:00:32 2009 +0100
@@ -1,3 +1,4 @@
+#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
@@ -1158,7 +1159,6 @@
 
 Client *
 nexttiled(Client *c) {
-	// TODO: m handling
 	for(; c && (c->isfloating || !ISVISIBLE(c)); c = c->next);
 	return c;
 }
@@ -1593,8 +1593,10 @@
 	XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */
 	detach(c);
 	detachstack(c);
-	if(selmon->sel == c)
+	if(c->mon->sel == c) {
+		c->mon->sel = c->mon->stack;
 		focus(NULL);
+	}
 	XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
 	setclientstate(c, WithdrawnState);
 	free(c);
@@ -1651,7 +1653,9 @@
 	Client *c;
 	Monitor *newmons = NULL, *m, *tm;
 
-#ifdef XINERAMA
+#ifdef XINULATOR
+	n = 2;
+#elif defined(XINERAMA)
 	XineramaScreenInfo *info = NULL;
 
 	if(XineramaIsActive(dpy))
@@ -1665,7 +1669,23 @@
 	}
 
 	/* 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)) {
 		for(i = 0, m = newmons; m; m = m->next, i++) {
 			m->screen_number = info[i].screen_number;