t* dwm + patches
       
   URI git clone git://git.codevoid.de/dwm-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 4a4857a812034079314b95598f8e8c2e6f33567d
   DIR parent 3b59a15d64e38b4196139bb05bb08b8d2ef49335
   URI Author: Stefan Hagen <sh+git[at]codevoid[dot]de>
       Date:   Sun,  3 Nov 2019 16:12:27 +0100
       
       remove FloatColor - %retab
       
       Diffstat:
         M config.h                            |      16 ++++------------
         M config.mk                           |       6 +++---
         M drw.h                               |       2 +-
         M dwm.c                               |     613 +++++++++++++------------------
         M maximize.c                          |     111 +++++++++++++++----------------
       
       5 files changed, 312 insertions(+), 436 deletions(-)
       ---
   DIR diff --git a/config.h b/config.h
       t@@ -10,28 +10,20 @@ static const char selbgcolor[]           = "#181818"; // top bar selection bg
        static const char selfgcolor[]           = "#eeeeee"; // top bar selection fg
        static const char normbordercolor[]      = "#242424"; // window border bg
        static const char selbordercolor[]       = "#990000"; // window border fg
       -static const char normfloatbordercolor[] = "#00FF00"; // float window border bg
       -static const char selfloatbordercolor[]  = "#00FF00"; // float window border fg
        static const unsigned int borderpx       = 1;         // window border size px
        static const unsigned int gappx          = 10;        // window gap size px
        static const unsigned int snap           = 8;         // snap distance px
       -static const unsigned int systraypinning = 1;         // 0: tray follows mouse
       -                                                      // >0: pin tray to mon X
        static const unsigned int systrayspacing = 2;         // systray spacing
       +static const unsigned int systraypinning = 1;         // 0 tray follows mouse
        static const int systraypinningfailfirst = 1;         // 1 first screen, 0 last
        static const int showsystray             = 1;         // 0 = no systray
        static const int showbar                 = 1;         // 0 = no bar
        static const int topbar                  = 1;         // 0 = bottom bar
        static const int extrabar                = 0;         // 0 = no extra bar
        
       -static const char *colors[][4]      = {
       -    [SchemeNorm] = {
       -        normfgcolor, normbgcolor, normbordercolor, normfloatbordercolor
       -    },
       -    [SchemeSel]  = {
       -    /*  fg           bg           border          floatborder */
       -        selfgcolor, selbgcolor, selbordercolor, selfloatbordercolor
       -    },
       +static const char *colors[][3]      = {
       +    [SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor },
       +    [SchemeSel]  = { selfgcolor, selbgcolor, selbordercolor },
        };
        
        /* dmenu options */
   DIR diff --git a/config.mk b/config.mk
       t@@ -25,9 +25,9 @@ INCS = -I${X11INC} -I${FREETYPEINC}
        LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS}
        
        # flags
       -CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=2 -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
       -#CFLAGS   = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS}
       -CFLAGS   = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os ${INCS} ${CPPFLAGS}
       +CPPFLAGS = -g -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=2 -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
       +#CFLAGS   = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os ${INCS} ${CPPFLAGS}
       +CFLAGS   = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS}
        LDFLAGS  = ${LIBS}
        
        # Solaris
   DIR diff --git a/drw.h b/drw.h
       t@@ -12,7 +12,7 @@ typedef struct Fnt {
                struct Fnt *next;
        } Fnt;
        
       -enum { ColFg, ColBg, ColBorder, ColFloat }; /* Clr scheme index */
       +enum { ColFg, ColBg, ColBorder }; /* Clr scheme index */
        typedef XftColor Clr;
        
        typedef struct {
   DIR diff --git a/dwm.c b/dwm.c
       t@@ -48,7 +48,7 @@
        #define BUTTONMASK              (ButtonPressMask|ButtonReleaseMask)
        #define CLEANMASK(mask)         (mask & ~(numlockmask|LockMask) & (ShiftMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask))
        #define INTERSECT(x,y,w,h,m)    (MAX(0, MIN((x)+(w),(m)->wx+(m)->ww) - MAX((x),(m)->wx)) \
       -                               * MAX(0, MIN((y)+(h),(m)->wy+(m)->wh) - MAX((y),(m)->wy)))
       +        * MAX(0, MIN((y)+(h),(m)->wy+(m)->wh) - MAX((y),(m)->wy)))
        #define ISVISIBLE(C)            ((C->tags & C->mon->tagset[C->mon->seltags]))
        #define LENGTH(X)               (sizeof X / sizeof X[0])
        #define MOUSEMASK               (BUTTONMASK|PointerMotionMask)
       t@@ -77,13 +77,13 @@
        enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
        enum { SchemeNorm, SchemeSel }; /* color schemes */
        enum { NetSupported, NetWMName, NetWMState, NetWMCheck,
       -       NetSystemTray, NetSystemTrayOP, NetSystemTrayOrientation, NetSystemTrayOrientationHorz,
       -       NetWMFullscreen, NetActiveWindow, NetWMWindowType,
       -       NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */
       +    NetSystemTray, NetSystemTrayOP, NetSystemTrayOrientation,
       +    NetSystemTrayOrientationHorz, NetWMFullscreen, NetActiveWindow,
       +    NetWMWindowType, NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */
        enum { Manager, Xembed, XembedInfo, XLast }; /* Xembed atoms */
        enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */
        enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
       -       ClkClientWin, ClkRootWin, ClkLast }; /* clicks */
       +    ClkClientWin, ClkRootWin, ClkLast }; /* clicks */
        
        typedef union {
            int i;
       t@@ -336,8 +336,7 @@ static unsigned int scratchtag = 1 << LENGTH(tags);
        struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; };
        
        /* function implementations */
       -void
       -applyrules(Client *c)
       +void applyrules(Client *c)
        {
            const char *class, *instance;
            unsigned int i;
       t@@ -356,8 +355,8 @@ applyrules(Client *c)
            for (i = 0; i < LENGTH(rules); i++) {
                r = &rules[i];
                if ((!r->title || strstr(c->name, r->title))
       -        && (!r->class || strstr(class, r->class))
       -        && (!r->instance || strstr(instance, r->instance)))
       +                && (!r->class || strstr(class, r->class))
       +                && (!r->instance || strstr(instance, r->instance)))
                {
                    c->isfloating = r->isfloating;
                    c->neverfocus = r->neverfocus;
       t@@ -374,8 +373,7 @@ applyrules(Client *c)
            c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : c->mon->tagset[c->mon->seltags];
        }
        
       -int
       -applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact)
       +int applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact)
        {
            int baseismin;
            Monitor *m = c->mon;
       t@@ -440,8 +438,7 @@ applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact)
            return *x != c->x || *y != c->y || *w != c->w || *h != c->h;
        }
        
       -void
       -arrange(Monitor *m)
       +void arrange(Monitor *m)
        {
            if (m)
                showhide(m->stack);
       t@@ -454,30 +451,26 @@ arrange(Monitor *m)
                arrangemon(m);
        }
        
       -void
       -arrangemon(Monitor *m)
       +void arrangemon(Monitor *m)
        {
            strncpy(m->ltsymbol, m->lt[m->sellt]->symbol, sizeof m->ltsymbol);
            if (m->lt[m->sellt]->arrange)
                m->lt[m->sellt]->arrange(m);
        }
        
       -void
       -attach(Client *c)
       +void attach(Client *c)
        {
            c->next = c->mon->clients;
            c->mon->clients = c;
        }
        
       -void
       -attachstack(Client *c)
       +void attachstack(Client *c)
        {
            c->snext = c->mon->stack;
            c->mon->stack = c;
        }
        
       -void
       -buttonpress(XEvent *e)
       +void buttonpress(XEvent *e)
        {
            unsigned int i, x, click;
            Arg arg = {0};
       t@@ -514,12 +507,11 @@ buttonpress(XEvent *e)
            }
            for (i = 0; i < LENGTH(buttons); i++)
                if (click == buttons[i].click && buttons[i].func && buttons[i].button == ev->button
       -        && CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state))
       +                && CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state))
                    buttons[i].func(click == ClkTagBar && buttons[i].arg.i == 0 ? &arg : &buttons[i].arg);
        }
        
       -void
       -checkotherwm(void)
       +void checkotherwm(void)
        {
            xerrorxlib = XSetErrorHandler(xerrorstart);
            /* this causes an error if some other window manager is running */
       t@@ -529,8 +521,7 @@ checkotherwm(void)
            XSync(dpy, False);
        }
        
       -void
       -cleanup(void)
       +void cleanup(void)
        {
            Arg a = {.ui = ~0};
            Layout foo = { "", NULL };
       t@@ -563,8 +554,7 @@ cleanup(void)
            XDeleteProperty(dpy, root, netatom[NetActiveWindow]);
        }
        
       -void
       -cleanupmon(Monitor *mon)
       +void cleanupmon(Monitor *mon)
        {
            Monitor *m;
        
       t@@ -579,8 +569,7 @@ cleanupmon(Monitor *mon)
            free(mon);
        }
        
       -void
       -clientmessage(XEvent *e)
       +void clientmessage(XEvent *e)
        {
            XWindowAttributes wa;
            XSetWindowAttributes swa;
       t@@ -632,17 +621,16 @@ clientmessage(XEvent *e)
                return;
            if (cme->message_type == netatom[NetWMState]) {
                if (cme->data.l[1] == netatom[NetWMFullscreen]
       -        || cme->data.l[2] == netatom[NetWMFullscreen])
       +                || cme->data.l[2] == netatom[NetWMFullscreen])
                    setfullscreen(c, (cme->data.l[0] == 1 /* _NET_WM_STATE_ADD    */
       -                || (cme->data.l[0] == 2 /* _NET_WM_STATE_TOGGLE */ && !c->isfullscreen)));
       +                        || (cme->data.l[0] == 2 /* _NET_WM_STATE_TOGGLE */ && !c->isfullscreen)));
            } else if (cme->message_type == netatom[NetActiveWindow]) {
                if (c != selmon->sel && !c->isurgent)
                    seturgent(c, 1);
            }
        }
        
       -void
       -configure(Client *c)
       +void configure(Client *c)
        {
            XConfigureEvent ce;
        
       t@@ -660,8 +648,7 @@ configure(Client *c)
            XSendEvent(dpy, c->win, False, StructureNotifyMask, (XEvent *)&ce);
        }
        
       -void
       -configurenotify(XEvent *e)
       +void configurenotify(XEvent *e)
        {
            Monitor *m;
            Client *c;
       t@@ -690,8 +677,7 @@ configurenotify(XEvent *e)
            }
        }
        
       -void
       -configurerequest(XEvent *e)
       +void configurerequest(XEvent *e)
        {
            Client *c;
            Monitor *m;
       t@@ -742,8 +728,7 @@ configurerequest(XEvent *e)
            XSync(dpy, False);
        }
        
       -Monitor *
       -createmon(void)
       +Monitor * createmon(void)
        {
            Monitor *m;
            int i;
       t@@ -778,8 +763,7 @@ createmon(void)
            return m;
        }
        
       -void
       -destroynotify(XEvent *e)
       +void destroynotify(XEvent *e)
        {
            Client *c;
            XDestroyWindowEvent *ev = &e->xdestroywindow;
       t@@ -793,8 +777,7 @@ destroynotify(XEvent *e)
            }
        }
        
       -void
       -detach(Client *c)
       +void detach(Client *c)
        {
            Client **tc;
        
       t@@ -802,8 +785,7 @@ detach(Client *c)
            *tc = c->next;
        }
        
       -void
       -detachstack(Client *c)
       +void detachstack(Client *c)
        {
            Client **tc, *t;
        
       t@@ -816,8 +798,7 @@ detachstack(Client *c)
            }
        }
        
       -Monitor *
       -dirtomon(int dir)
       +Monitor * dirtomon(int dir)
        {
            Monitor *m = NULL;
        
       t@@ -831,8 +812,7 @@ dirtomon(int dir)
            return m;
        }
        
       -void
       -drawbar(Monitor *m)
       +void drawbar(Monitor *m)
        {
            int x, w, sw = 0, stw = 0;
            int boxs = drw->fonts->h / 9;
       t@@ -863,8 +843,8 @@ drawbar(Monitor *m)
                drw_text(drw, x, 0, w, bh, lrpad / 2, tags[i], urg & 1 << i);
                if (occ & 1 << i)
                    drw_rect(drw, x + boxw - 2, 0, w - boxw, boxw / 2,
       -                m == selmon && selmon->sel && selmon->sel->tags & 1 << i,
       -                urg & 1 << i);
       +                    m == selmon && selmon->sel && selmon->sel->tags & 1 << i,
       +                    urg & 1 << i);
                x += w;
            }
            w = blw = TEXTW(m->ltsymbol);
       t@@ -888,8 +868,7 @@ drawbar(Monitor *m)
            drw_map(drw, eb.win, 0, 0, mons->ww, bh);
        }
        
       -void
       -drawbars(void)
       +void drawbars(void)
        {
            Monitor *m;
        
       t@@ -897,8 +876,7 @@ drawbars(void)
                drawbar(m);
        }
        
       -void
       -enternotify(XEvent *e)
       +void enternotify(XEvent *e)
        {
            Client *c;
            Monitor *m;
       t@@ -916,8 +894,7 @@ enternotify(XEvent *e)
            focus(c);
        }
        
       -void
       -expose(XEvent *e)
       +void expose(XEvent *e)
        {
            Monitor *m;
            XExposeEvent *ev = &e->xexpose;
       t@@ -929,8 +906,7 @@ expose(XEvent *e)
            }
        }
        
       -void
       -focus(Client *c)
       +void focus(Client *c)
        {
            if (!c || !ISVISIBLE(c))
                for (c = selmon->stack; c && !ISVISIBLE(c); c = c->snext);
       t@@ -946,11 +922,9 @@ focus(Client *c)
                grabbuttons(c, 1);
                if(c->ismax) {
                    XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColBg].pixel);
       -                } else if(c->isfloating) {
       -            XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColFloat].pixel);
       -                } else {
       +        } else {
                    XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBorder].pixel);
       -                }
       +        }
                setfocus(c);
            } else {
                XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
       t@@ -961,8 +935,7 @@ focus(Client *c)
        }
        
        /* there are some broken focus acquiring clients needing extra handling */
       -void
       -focusin(XEvent *e)
       +void focusin(XEvent *e)
        {
            XFocusChangeEvent *ev = &e->xfocus;
        
       t@@ -970,8 +943,7 @@ focusin(XEvent *e)
                setfocus(selmon->sel);
        }
        
       -void
       -focusmon(const Arg *arg)
       +void focusmon(const Arg *arg)
        {
            Monitor *m;
        
       t@@ -984,8 +956,7 @@ focusmon(const Arg *arg)
            focus(NULL);
        }
        
       -void
       -focusstack(const Arg *arg)
       +void focusstack(const Arg *arg)
        {
            Client *c = NULL, *i;
        
       t@@ -1012,8 +983,7 @@ focusstack(const Arg *arg)
            }
        }
        
       -Atom
       -getatomprop(Client *c, Atom prop)
       +Atom getatomprop(Client *c, Atom prop)
        {
            int di;
            unsigned long dl;
       t@@ -1026,7 +996,7 @@ getatomprop(Client *c, Atom prop)
                req = xatom[XembedInfo];
        
            if (XGetWindowProperty(dpy, c->win, prop, 0L, sizeof atom, False, req,
       -        &da, &di, &dl, &dl, &p) == Success && p) {
       +                &da, &di, &dl, &dl, &p) == Success && p) {
                atom = *(Atom *)p;
                if (da == xatom[XembedInfo] && dl == 2)
                    atom = ((Atom *)p)[1];
       t@@ -1035,8 +1005,7 @@ getatomprop(Client *c, Atom prop)
            return atom;
        }
        
       -int
       -getrootptr(int *x, int *y)
       +int getrootptr(int *x, int *y)
        {
            int di;
            unsigned int dui;
       t@@ -1045,8 +1014,7 @@ getrootptr(int *x, int *y)
            return XQueryPointer(dpy, root, &dummy, &dummy, x, y, &di, &di, &dui);
        }
        
       -long
       -getstate(Window w)
       +long getstate(Window w)
        {
            int format;
            long result = -1;
       t@@ -1055,7 +1023,7 @@ getstate(Window w)
            Atom real;
        
            if (XGetWindowProperty(dpy, w, wmatom[WMState], 0L, 2L, False, wmatom[WMState],
       -        &real, &format, &n, &extra, (unsigned char **)&p) != Success)
       +                &real, &format, &n, &extra, (unsigned char **)&p) != Success)
                return -1;
            if (n != 0)
                result = *p;
       t@@ -1063,8 +1031,7 @@ getstate(Window w)
            return result;
        }
        
       -unsigned int
       -getsystraywidth()
       +unsigned int getsystraywidth()
        {
            unsigned int w = 0;
            Client *i;
       t@@ -1073,8 +1040,7 @@ getsystraywidth()
            return w ? w + systrayspacing : 1;
        }
        
       -int
       -gettextprop(Window w, Atom atom, char *text, unsigned int size)
       +int gettextprop(Window w, Atom atom, char *text, unsigned int size)
        {
            char **list = NULL;
            int n;
       t@@ -1098,8 +1064,7 @@ gettextprop(Window w, Atom atom, char *text, unsigned int size)
            return 1;
        }
        
       -void
       -grabbuttons(Client *c, int focused)
       +void grabbuttons(Client *c, int focused)
        {
            updatenumlockmask();
            {
       t@@ -1108,19 +1073,18 @@ grabbuttons(Client *c, int focused)
                XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
                if (!focused)
                    XGrabButton(dpy, AnyButton, AnyModifier, c->win, False,
       -                BUTTONMASK, GrabModeSync, GrabModeSync, None, None);
       +                    BUTTONMASK, GrabModeSync, GrabModeSync, None, None);
                for (i = 0; i < LENGTH(buttons); i++)
                    if (buttons[i].click == ClkClientWin)
                        for (j = 0; j < LENGTH(modifiers); j++)
                            XGrabButton(dpy, buttons[i].button,
       -                        buttons[i].mask | modifiers[j],
       -                        c->win, False, BUTTONMASK,
       -                        GrabModeAsync, GrabModeSync, None, None);
       +                            buttons[i].mask | modifiers[j],
       +                            c->win, False, BUTTONMASK,
       +                            GrabModeAsync, GrabModeSync, None, None);
            }
        }
        
       -void
       -grabkeys(void)
       +void grabkeys(void)
        {
            updatenumlockmask();
            {
       t@@ -1133,31 +1097,29 @@ grabkeys(void)
                    if ((code = XKeysymToKeycode(dpy, keys[i].keysym)))
                        for (j = 0; j < LENGTH(modifiers); j++)
                            XGrabKey(dpy, code, keys[i].mod | modifiers[j], root,
       -                        True, GrabModeAsync, GrabModeAsync);
       +                            True, GrabModeAsync, GrabModeAsync);
            }
        }
        
       -void
       -incnmaster(const Arg *arg)
       +void incnmaster(const Arg *arg)
        {
            selmon->nmaster = MAX(selmon->nmaster + arg->i, 0);
            arrange(selmon);
        }
        
        #ifdef XINERAMA
       -static int
       +    static int
        isuniquegeom(XineramaScreenInfo *unique, size_t n, XineramaScreenInfo *info)
        {
            while (n--)
                if (unique[n].x_org == info->x_org && unique[n].y_org == info->y_org
       -        && unique[n].width == info->width && unique[n].height == info->height)
       +                && unique[n].width == info->width && unique[n].height == info->height)
                    return 0;
            return 1;
        }
        #endif /* XINERAMA */
        
       -void
       -keypress(XEvent *e)
       +void keypress(XEvent *e)
        {
            unsigned int i;
            KeySym keysym;
       t@@ -1167,13 +1129,12 @@ keypress(XEvent *e)
            keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0);
            for (i = 0; i < LENGTH(keys); i++)
                if (keysym == keys[i].keysym
       -        && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state)
       -        && keys[i].func)
       +                && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state)
       +                && keys[i].func)
                    keys[i].func(&(keys[i].arg));
        }
        
       -void
       -killclient(const Arg *arg)
       +void killclient(const Arg *arg)
        {
            if (!selmon->sel)
                return;
       t@@ -1188,8 +1149,7 @@ killclient(const Arg *arg)
            }
        }
        
       -void
       -manage(Window w, XWindowAttributes *wa)
       +void manage(Window w, XWindowAttributes *wa)
        {
            Client *c, *t = NULL;
            Window trans = None;
       t@@ -1220,7 +1180,7 @@ manage(Window w, XWindowAttributes *wa)
            c->x = MAX(c->x, c->mon->mx);
            /* only fix client y-offset, if the client center might cover the bar */
            c->y = MAX(c->y, ((c->mon->by == c->mon->my) && (c->x + (c->w / 2) >= c->mon->wx)
       -        && (c->x + (c->w / 2) < c->mon->wx + c->mon->ww)) ? bh : c->mon->my);
       +                && (c->x + (c->w / 2) < c->mon->wx + c->mon->ww)) ? bh : c->mon->my);
            c->bw = borderpx;
        
            if (!strcmp(c->name, scratchpadname)) {
       t@@ -1234,11 +1194,9 @@ manage(Window w, XWindowAttributes *wa)
            XConfigureWindow(dpy, w, CWBorderWidth, &wc);
            if(c->ismax) {
                XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColBg].pixel);
       -        } else if(c->isfloating) {
       -        XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColFloat].pixel);
       -        } else {
       +    } else {
                XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBorder].pixel);
       -        }
       +    }
            configure(c); /* propagates border_width, if size doesn't change */
            updatewindowtype(c);
            updatesizehints(c);
       t@@ -1251,15 +1209,13 @@ manage(Window w, XWindowAttributes *wa)
                XRaiseWindow(dpy, c->win);
            if(c->ismax) {
                XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColBg].pixel);
       -        } else if(c->isfloating) {
       -        XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColFloat].pixel);
       -        } else {
       +    } else {
                XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBorder].pixel);
       -        }
       +    }
            attach(c);
            attachstack(c);
            XChangeProperty(dpy, root, netatom[NetClientList], XA_WINDOW, 32, PropModeAppend,
       -        (unsigned char *) &(c->win), 1);
       +            (unsigned char *) &(c->win), 1);
            XMoveResizeWindow(dpy, c->win, c->x + 2 * sw, c->y, c->w, c->h); /* some windows require this */
            setclientstate(c, NormalState);
            if (c->mon == selmon)
       t@@ -1270,8 +1226,7 @@ manage(Window w, XWindowAttributes *wa)
            focus(NULL);
        }
        
       -void
       -mappingnotify(XEvent *e)
       +void mappingnotify(XEvent *e)
        {
            XMappingEvent *ev = &e->xmapping;
        
       t@@ -1280,8 +1235,7 @@ mappingnotify(XEvent *e)
                grabkeys();
        }
        
       -void
       -maprequest(XEvent *e)
       +void maprequest(XEvent *e)
        {
            static XWindowAttributes wa;
            XMapRequestEvent *ev = &e->xmaprequest;
       t@@ -1300,8 +1254,7 @@ maprequest(XEvent *e)
                manage(ev->window, &wa);
        }
        
       -void
       -monocle(Monitor *m)
       +void monocle(Monitor *m)
        {
            unsigned int n = 0;
            Client *c;
       t@@ -1315,8 +1268,7 @@ monocle(Monitor *m)
                resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, 0);
        }
        
       -void
       -motionnotify(XEvent *e)
       +void motionnotify(XEvent *e)
        {
            static Monitor *mon = NULL;
            Monitor *m;
       t@@ -1332,8 +1284,7 @@ motionnotify(XEvent *e)
            mon = m;
        }
        
       -void
       -movemouse(const Arg *arg)
       +void movemouse(const Arg *arg)
        {
            int x, y, ocx, ocy, nx, ny;
            Client *c;
       t@@ -1349,39 +1300,39 @@ movemouse(const Arg *arg)
            ocx = c->x;
            ocy = c->y;
            if (XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
       -        None, cursor[CurMove]->cursor, CurrentTime) != GrabSuccess)
       +                None, cursor[CurMove]->cursor, CurrentTime) != GrabSuccess)
                return;
            if (!getrootptr(&x, &y))
                return;
            do {
                XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev);
                switch(ev.type) {
       -        case ConfigureRequest:
       -        case Expose:
       -        case MapRequest:
       -            handler[ev.type](&ev);
       -            break;
       -        case MotionNotify:
       -            if ((ev.xmotion.time - lasttime) <= (1000 / 60))
       -                continue;
       -            lasttime = ev.xmotion.time;
       -
       -            nx = ocx + (ev.xmotion.x - x);
       -            ny = ocy + (ev.xmotion.y - y);
       -            if (abs(selmon->wx - nx) < snap)
       -                nx = selmon->wx;
       -            else if (abs((selmon->wx + selmon->ww) - (nx + WIDTH(c))) < snap)
       -                nx = selmon->wx + selmon->ww - WIDTH(c);
       -            if (abs(selmon->wy - ny) < snap)
       -                ny = selmon->wy;
       -            else if (abs((selmon->wy + selmon->wh) - (ny + HEIGHT(c))) < snap)
       -                ny = selmon->wy + selmon->wh - HEIGHT(c);
       -            if (!c->isfloating && selmon->lt[selmon->sellt]->arrange
       -            && (abs(nx - c->x) > snap || abs(ny - c->y) > snap))
       -                togglefloating(NULL);
       -            if (!selmon->lt[selmon->sellt]->arrange || c->isfloating)
       -                resize(c, nx, ny, c->w, c->h, 1);
       -            break;
       +            case ConfigureRequest:
       +            case Expose:
       +            case MapRequest:
       +                handler[ev.type](&ev);
       +                break;
       +            case MotionNotify:
       +                if ((ev.xmotion.time - lasttime) <= (1000 / 60))
       +                    continue;
       +                lasttime = ev.xmotion.time;
       +
       +                nx = ocx + (ev.xmotion.x - x);
       +                ny = ocy + (ev.xmotion.y - y);
       +                if (abs(selmon->wx - nx) < snap)
       +                    nx = selmon->wx;
       +                else if (abs((selmon->wx + selmon->ww) - (nx + WIDTH(c))) < snap)
       +                    nx = selmon->wx + selmon->ww - WIDTH(c);
       +                if (abs(selmon->wy - ny) < snap)
       +                    ny = selmon->wy;
       +                else if (abs((selmon->wy + selmon->wh) - (ny + HEIGHT(c))) < snap)
       +                    ny = selmon->wy + selmon->wh - HEIGHT(c);
       +                if (!c->isfloating && selmon->lt[selmon->sellt]->arrange
       +                        && (abs(nx - c->x) > snap || abs(ny - c->y) > snap))
       +                    togglefloating(NULL);
       +                if (!selmon->lt[selmon->sellt]->arrange || c->isfloating)
       +                    resize(c, nx, ny, c->w, c->h, 1);
       +                break;
                }
            } while (ev.type != ButtonRelease);
            XUngrabPointer(dpy, CurrentTime);
       t@@ -1392,15 +1343,13 @@ movemouse(const Arg *arg)
            }
        }
        
       -Client *
       -nexttiled(Client *c)
       +Client * nexttiled(Client *c)
        {
            for (; c && (c->isfloating || !ISVISIBLE(c)); c = c->next);
            return c;
        }
        
       -void
       -pop(Client *c)
       +void pop(Client *c)
        {
            detach(c);
            attach(c);
       t@@ -1408,8 +1357,7 @@ pop(Client *c)
            arrange(c->mon);
        }
        
       -void
       -propertynotify(XEvent *e)
       +void propertynotify(XEvent *e)
        {
            Client *c;
            Window trans;
       t@@ -1431,19 +1379,19 @@ propertynotify(XEvent *e)
                return; /* ignore */
            else if ((c = wintoclient(ev->window))) {
                switch(ev->atom) {
       -        default: break;
       -        case XA_WM_TRANSIENT_FOR:
       -            if (!c->isfloating && (XGetTransientForHint(dpy, c->win, &trans)) &&
       -                (c->isfloating = (wintoclient(trans)) != NULL))
       -                arrange(c->mon);
       -            break;
       -        case XA_WM_NORMAL_HINTS:
       -            updatesizehints(c);
       -            break;
       -        case XA_WM_HINTS:
       -            updatewmhints(c);
       -            drawbars();
       -            break;
       +            default: break;
       +            case XA_WM_TRANSIENT_FOR:
       +                     if (!c->isfloating && (XGetTransientForHint(dpy, c->win, &trans)) &&
       +                             (c->isfloating = (wintoclient(trans)) != NULL))
       +                         arrange(c->mon);
       +                     break;
       +            case XA_WM_NORMAL_HINTS:
       +                     updatesizehints(c);
       +                     break;
       +            case XA_WM_HINTS:
       +                     updatewmhints(c);
       +                     drawbars();
       +                     break;
                }
                if (ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName]) {
                    updatetitle(c);
       t@@ -1455,14 +1403,12 @@ propertynotify(XEvent *e)
            }
        }
        
       -void
       -quit(const Arg *arg)
       +void quit(const Arg *arg)
        {
            running = 0;
        }
        
       -Monitor *
       -recttomon(int x, int y, int w, int h)
       +Monitor * recttomon(int x, int y, int w, int h)
        {
            Monitor *m, *r = selmon;
            int a, area = 0;
       t@@ -1475,8 +1421,7 @@ recttomon(int x, int y, int w, int h)
            return r;
        }
        
       -void
       -removesystrayicon(Client *i)
       +void removesystrayicon(Client *i)
        {
            Client **ii;
        
       t@@ -1489,23 +1434,20 @@ removesystrayicon(Client *i)
        }
        
        
       -void
       -resize(Client *c, int x, int y, int w, int h, int interact)
       +void resize(Client *c, int x, int y, int w, int h, int interact)
        {
            if (applysizehints(c, &x, &y, &w, &h, interact))
                resizeclient(c, x, y, w, h);
        }
        
       -void
       -resizebarwin(Monitor *m) {
       +void resizebarwin(Monitor *m) {
            unsigned int w = m->ww;
            if (showsystray && m == systraytomon(m))
                w -= getsystraywidth();
            XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, w, bh);
        }
        
       -void
       -resizeclient(Client *c, int x, int y, int w, int h)
       +void resizeclient(Client *c, int x, int y, int w, int h)
        {
            XWindowChanges wc;
        
       t@@ -1519,8 +1461,7 @@ resizeclient(Client *c, int x, int y, int w, int h)
            XSync(dpy, False);
        }
        
       -void
       -resizemouse(const Arg *arg)
       +void resizemouse(const Arg *arg)
        {
            int ocx, ocy, nw, nh;
            Client *c;
       t@@ -1536,34 +1477,34 @@ resizemouse(const Arg *arg)
            ocx = c->x;
            ocy = c->y;
            if (XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
       -        None, cursor[CurResize]->cursor, CurrentTime) != GrabSuccess)
       +                None, cursor[CurResize]->cursor, CurrentTime) != GrabSuccess)
                return;
            XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1);
            do {
                XMaskEvent(dpy, MOUSEMASK|ExposureMask|SubstructureRedirectMask, &ev);
                switch(ev.type) {
       -        case ConfigureRequest:
       -        case Expose:
       -        case MapRequest:
       -            handler[ev.type](&ev);
       -            break;
       -        case MotionNotify:
       -            if ((ev.xmotion.time - lasttime) <= (1000 / 60))
       -                continue;
       -            lasttime = ev.xmotion.time;
       -
       -            nw = MAX(ev.xmotion.x - ocx - 2 * c->bw + 1, 1);
       -            nh = MAX(ev.xmotion.y - ocy - 2 * c->bw + 1, 1);
       -            if (c->mon->wx + nw >= selmon->wx && c->mon->wx + nw <= selmon->wx + selmon->ww
       -            && c->mon->wy + nh >= selmon->wy && c->mon->wy + nh <= selmon->wy + selmon->wh)
       -            {
       -                if (!c->isfloating && selmon->lt[selmon->sellt]->arrange
       -                && (abs(nw - c->w) > snap || abs(nh - c->h) > snap))
       -                    togglefloating(NULL);
       -            }
       -            if (!selmon->lt[selmon->sellt]->arrange || c->isfloating)
       -                resize(c, c->x, c->y, nw, nh, 1);
       -            break;
       +            case ConfigureRequest:
       +            case Expose:
       +            case MapRequest:
       +                handler[ev.type](&ev);
       +                break;
       +            case MotionNotify:
       +                if ((ev.xmotion.time - lasttime) <= (1000 / 60))
       +                    continue;
       +                lasttime = ev.xmotion.time;
       +
       +                nw = MAX(ev.xmotion.x - ocx - 2 * c->bw + 1, 1);
       +                nh = MAX(ev.xmotion.y - ocy - 2 * c->bw + 1, 1);
       +                if (c->mon->wx + nw >= selmon->wx && c->mon->wx + nw <= selmon->wx + selmon->ww
       +                        && c->mon->wy + nh >= selmon->wy && c->mon->wy + nh <= selmon->wy + selmon->wh)
       +                {
       +                    if (!c->isfloating && selmon->lt[selmon->sellt]->arrange
       +                            && (abs(nw - c->w) > snap || abs(nh - c->h) > snap))
       +                        togglefloating(NULL);
       +                }
       +                if (!selmon->lt[selmon->sellt]->arrange || c->isfloating)
       +                    resize(c, c->x, c->y, nw, nh, 1);
       +                break;
                }
            } while (ev.type != ButtonRelease);
            XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1);
       t@@ -1576,8 +1517,7 @@ resizemouse(const Arg *arg)
            }
        }
        
       -void
       -resizerequest(XEvent *e)
       +void resizerequest(XEvent *e)
        {
            XResizeRequestEvent *ev = &e->xresizerequest;
            Client *i;
       t@@ -1589,8 +1529,7 @@ resizerequest(XEvent *e)
            }
        }
        
       -void
       -restack(Monitor *m)
       +void restack(Monitor *m)
        {
            Client *c;
            XEvent ev;
       t@@ -1614,8 +1553,7 @@ restack(Monitor *m)
            while (XCheckMaskEvent(dpy, EnterWindowMask, &ev));
        }
        
       -void
       -run(void)
       +void run(void)
        {
            XEvent ev;
            /* main event loop */
       t@@ -1625,8 +1563,7 @@ run(void)
                    handler[ev.type](&ev); /* call handler */
        }
        
       -void
       -scan(void)
       +void scan(void)
        {
            unsigned int i, num;
            Window d1, d2, *wins = NULL;
       t@@ -1635,7 +1572,7 @@ scan(void)
            if (XQueryTree(dpy, root, &d1, &d2, &wins, &num)) {
                for (i = 0; i < num; i++) {
                    if (!XGetWindowAttributes(dpy, wins[i], &wa)
       -            || wa.override_redirect || XGetTransientForHint(dpy, wins[i], &d1))
       +                    || wa.override_redirect || XGetTransientForHint(dpy, wins[i], &d1))
                        continue;
                    if (wa.map_state == IsViewable || getstate(wins[i]) == IconicState)
                        manage(wins[i], &wa);
       t@@ -1644,7 +1581,7 @@ scan(void)
                    if (!XGetWindowAttributes(dpy, wins[i], &wa))
                        continue;
                    if (XGetTransientForHint(dpy, wins[i], &d1)
       -            && (wa.map_state == IsViewable || getstate(wins[i]) == IconicState))
       +                    && (wa.map_state == IsViewable || getstate(wins[i]) == IconicState))
                        manage(wins[i], &wa);
                }
                if (wins)
       t@@ -1652,8 +1589,7 @@ scan(void)
            }
        }
        
       -void
       -sendmon(Client *c, Monitor *m)
       +void sendmon(Client *c, Monitor *m)
        {
            if (c->mon == m)
                return;
       t@@ -1668,17 +1604,15 @@ sendmon(Client *c, Monitor *m)
            arrange(NULL);
        }
        
       -void
       -setclientstate(Client *c, long state)
       +void setclientstate(Client *c, long state)
        {
            long data[] = { state, None };
        
            XChangeProperty(dpy, c->win, wmatom[WMState], wmatom[WMState], 32,
       -        PropModeReplace, (unsigned char *)data, 2);
       +            PropModeReplace, (unsigned char *)data, 2);
        }
        
       -int
       -sendevent(Window w, Atom proto, int mask, long d0, long d1, long d2, long d3, long d4)
       +int sendevent(Window w, Atom proto, int mask, long d0, long d1, long d2, long d3, long d4)
        {
            int n;
            Atom *protocols, mt;
       t@@ -1712,24 +1646,22 @@ sendevent(Window w, Atom proto, int mask, long d0, long d1, long d2, long d3, lo
            return exists;
        }
        
       -void
       -setfocus(Client *c)
       +void setfocus(Client *c)
        {
            if (!c->neverfocus) {
                XSetInputFocus