t* dwm + patches
       
   URI git clone git://git.codevoid.de/dwm-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit c982bb1389c37262cbcc6ffcc343ec78528c4a81
   DIR parent 6cf73e706ac8748e2e1734faad532ca3918e56c2
   URI Author: anselm@anselm1 <unknown>
       Date:   Wed,  2 Apr 2008 22:10:55 +0100
       
       applied Peter Hartlich's simplification patch of setmfact and his revival of MFACT, appliead Janness Hofmann's simplification of grabbuttons() -- thanks guys!
       Diffstat:
         M config.def.h                        |       2 +-
         M dwm.c                               |      64 +++++++++++--------------------
       
       2 files changed, 24 insertions(+), 42 deletions(-)
       ---
   DIR diff --git a/config.def.h b/config.def.h
       t@@ -20,7 +20,7 @@ Rule rules[] = {
        
        /* geometries, s{x,y,w,h} and bh are already initualized here */
        /*   func name  bx  by  bw  wx  wy  ww     wh  mx  my       mw  mh     tx  ty     tw  th  mox moy mow moh */
       -double mfact = 0.55;
       +#define MFACT                        0.55        /* master width factor [0.1 .. 0.9] */
        DEFGEOM(single,  0,  0, sw,  0, bh, sw, sh-bh, wx, wy, mfact*sw, wh, mx+mw, wy, ww-mw, wh,  wx, wy, ww, wh)
        DEFGEOM(dual,    0,  0,1280, 0, bh, ww, wh-bh, wx, wy, 1280,800-bh,  1280,  0, ww-mw, sh,  mx, my, mw, mh)
        
   DIR diff --git a/dwm.c b/dwm.c
       t@@ -212,6 +212,7 @@ char stext[256], buf[256];
        int screen, sx, sy, sw, sh;
        int (*xerrorxlib)(Display *, XErrorEvent *);
        int bx, by, bw, bh, blw, bgw, mx, my, mw, mh, mox, moy, mow, moh, tx, ty, tw, th, wx, wy, ww, wh;
       +double mfact;
        unsigned int numlockmask = 0;
        void (*handler[LASTEvent]) (XEvent *) = {
                [ButtonPress] = buttonpress,
       t@@ -805,39 +806,20 @@ gettextprop(Window w, Atom atom, char *text, unsigned int size) {
        
        void
        grabbuttons(Client *c, Bool focused) {
       -        XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
       +        int i, j;
       +        unsigned int buttons[]   = { Button1, Button2, Button3 };
       +        unsigned int modifiers[] = { MODKEY, MODKEY|LockMask, MODKEY|numlockmask,
       +                                     MODKEY|numlockmask|LockMask} ;
        
       -        if(focused) {
       -                XGrabButton(dpy, Button1, MODKEY, c->win, False, BUTTONMASK,
       -                                GrabModeAsync, GrabModeSync, None, None);
       -                XGrabButton(dpy, Button1, MODKEY|LockMask, c->win, False, BUTTONMASK,
       -                                GrabModeAsync, GrabModeSync, None, None);
       -                XGrabButton(dpy, Button1, MODKEY|numlockmask, c->win, False, BUTTONMASK,
       -                                GrabModeAsync, GrabModeSync, None, None);
       -                XGrabButton(dpy, Button1, MODKEY|numlockmask|LockMask, c->win, False, BUTTONMASK,
       -                                GrabModeAsync, GrabModeSync, None, None);
       -
       -                XGrabButton(dpy, Button2, MODKEY, c->win, False, BUTTONMASK,
       -                                GrabModeAsync, GrabModeSync, None, None);
       -                XGrabButton(dpy, Button2, MODKEY|LockMask, c->win, False, BUTTONMASK,
       -                                GrabModeAsync, GrabModeSync, None, None);
       -                XGrabButton(dpy, Button2, MODKEY|numlockmask, c->win, False, BUTTONMASK,
       -                                GrabModeAsync, GrabModeSync, None, None);
       -                XGrabButton(dpy, Button2, MODKEY|numlockmask|LockMask, c->win, False, BUTTONMASK,
       -                                GrabModeAsync, GrabModeSync, None, None);
       -
       -                XGrabButton(dpy, Button3, MODKEY, c->win, False, BUTTONMASK,
       -                                GrabModeAsync, GrabModeSync, None, None);
       -                XGrabButton(dpy, Button3, MODKEY|LockMask, c->win, False, BUTTONMASK,
       -                                GrabModeAsync, GrabModeSync, None, None);
       -                XGrabButton(dpy, Button3, MODKEY|numlockmask, c->win, False, BUTTONMASK,
       -                                GrabModeAsync, GrabModeSync, None, None);
       -                XGrabButton(dpy, Button3, MODKEY|numlockmask|LockMask, c->win, False, BUTTONMASK,
       -                                GrabModeAsync, GrabModeSync, None, None);
       -        }
       +        XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
       +        if(focused)
       +                for(i = 0; i < LENGTH(buttons); i++)
       +                        for(j = 0; j < LENGTH(modifiers); j++)
       +                                XGrabButton(dpy, buttons[i], modifiers[j], c->win, False,
       +                                            BUTTONMASK, GrabModeAsync, GrabModeSync, None, None);
                else
       -                XGrabButton(dpy, AnyButton, AnyModifier, c->win, False, BUTTONMASK,
       -                                GrabModeAsync, GrabModeSync, None, None);
       +                XGrabButton(dpy, AnyButton, AnyModifier, c->win, False,
       +                            BUTTONMASK, GrabModeAsync, GrabModeSync, None, None);
        }
        
        void
       t@@ -1467,20 +1449,19 @@ setlayout(const char *arg) {
        
        void
        setmfact(const char *arg) {
       -        double delta;
       +        double d;
        
       -        if(!arg || lt->isfloating)
       +        if(lt->isfloating)
                        return;
       -        delta = strtod(arg, NULL);
       -        if(arg[0] == '-' || arg[0] == '+') {
       -                if(mfact + delta < 0.1 || mfact + delta > 0.9)
       -                        return;
       -                mfact += delta;
       -        }
       +        if(!arg)
       +                mfact = MFACT;
                else {
       -                if(delta < 0.1 || delta > 0.9)
       +                d = strtod(arg, NULL);
       +                if(arg[0] == '-' || arg[0] == '+')
       +                        d += mfact;
       +                if(d < 0.1 || d > 0.9)
                                return;
       -                mfact = delta;
       +                mfact = d;
                }
                setgeom(geom->symbol);
        }
       t@@ -1501,6 +1482,7 @@ setup(void) {
                sw = DisplayWidth(dpy, screen);
                sh = DisplayHeight(dpy, screen);
                bh = dc.font.height + 2;
       +        mfact = MFACT;
                geom = &geoms[0];
                geom->apply();