t* dwm + patches
       
   URI git clone git://git.codevoid.de/dwm-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit fa5ae54bbb7f890540f4700809e00497018e0239
   DIR parent 7de534192cb53e595f8e29bd9757518b2d9e8860
   URI Author: Anselm R Garbe <anselm@garbe.us>
       Date:   Tue, 23 Jun 2009 19:00:32 +0100
       
       added some dual head simulator code
       Diffstat:
         M dwm.c                               |      28 ++++++++++++++++++++++++----
       
       1 file changed, 24 insertions(+), 4 deletions(-)
       ---
   DIR diff --git a/dwm.c b/dwm.c
       t@@ -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
       t@@ -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;
        }
       t@@ -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);
       t@@ -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))
       t@@ -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;