diff options
author | Anselm R Garbe <anselm@garbe.us> | 2009-06-23 19:00:32 +0100 |
---|---|---|
committer | Anselm R Garbe <anselm@garbe.us> | 2009-06-23 19:00:32 +0100 |
commit | fa5ae54bbb7f890540f4700809e00497018e0239 (patch) | |
tree | 1744d8df6cb1388742d490b84ef87ca9c7cd3db2 | |
parent | 7de534192cb53e595f8e29bd9757518b2d9e8860 (diff) | |
download | dwm-fa5ae54bbb7f890540f4700809e00497018e0239.tar.gz |
added some dual head simulator code
-rw-r--r-- | dwm.c | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/dwm.c b/dwm.c index fbda0bb..88e0b1b 100644 --- a/dwm.c +++ b/dwm.c @@ -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 @@ movemouse(const Arg *arg) { Client * nexttiled(Client *c) { - // TODO: m handling for(; c && (c->isfloating || !ISVISIBLE(c)); c = c->next); return c; } @@ -1593,8 +1593,10 @@ unmanage(Client *c) { 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 @@ updategeom(void) { 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 @@ updategeom(void) { } /* 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; |