JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
removed Layout->updategeom, unnecessary
[dwm.git] / dwm.c
diff --git a/dwm.c b/dwm.c
index 352e9db..0e4703e 100644 (file)
--- a/dwm.c
+++ b/dwm.c
@@ -52,6 +52,7 @@
 #define MAXTAGLEN       16
 #define MOUSEMASK       (BUTTONMASK|PointerMotionMask)
 #define TAGMASK         ((int)((1LL << LENGTH(tags)) - 1))
+#define TEXTW(x)        (textnw(x, strlen(x)) + dc.font.height)
 #define VISIBLE(x)      ((x)->tags & tagset[seltags])
 
 /* enums */
@@ -104,7 +105,6 @@ typedef struct {
 typedef struct {
        const char *symbol;
        void (*arrange)(void);
-       void (*updategeom)(void);
 } Layout;
 
 typedef struct {
@@ -169,7 +169,6 @@ void setup(void);
 void spawn(const void *arg);
 void tag(const void *arg);
 uint textnw(const char *text, uint len);
-uint textw(const char *text);
 void tile(void);
 void tileresize(Client *c, int x, int y, int w, int h);
 void togglebar(const void *arg);
@@ -183,7 +182,6 @@ void unmapnotify(XEvent *e);
 void updatebar(void);
 void updategeom(void);
 void updatesizehints(Client *c);
-void updatetilegeom(void);
 void updatetitle(Client *c);
 void updatewmhints(Client *c);
 void view(const void *arg);
@@ -197,7 +195,6 @@ void zoom(const void *arg);
 char stext[256];
 int screen, sx, sy, sw, sh;
 int bx, by, bw, bh, blw, wx, wy, ww, wh;
-int mx, my, mw, mh, tx, ty, tw, th;
 uint seltags = 0;
 int (*xerrorxlib)(Display *, XErrorEvent *);
 uint numlockmask = 0;
@@ -305,7 +302,7 @@ buttonpress(XEvent *e) {
        if(ev->window == barwin) {
                x = 0;
                for(i = 0; i < LENGTH(tags); i++) {
-                       x += textw(tags[i]);
+                       x += TEXTW(tags[i]);
                        if(ev->x < x) {
                                mask = 1 << i;
                                if(ev->button == Button1) {
@@ -491,7 +488,7 @@ drawbar(void) {
        dc.x = 0;
        for(c = stack; c && !VISIBLE(c); c = c->snext);
        for(i = 0; i < LENGTH(tags); i++) {
-               dc.w = textw(tags[i]);
+               dc.w = TEXTW(tags[i]);
                if(tagset[seltags] & 1 << i) {
                        drawtext(tags[i], dc.sel, isurgent(i));
                        drawsquare(c && c->tags & 1 << i, isoccupied(i), isurgent(i), dc.sel);
@@ -509,7 +506,7 @@ drawbar(void) {
        }
        else
                x = dc.x;
-       dc.w = textw(stext);
+       dc.w = TEXTW(stext);
        dc.x = bw - dc.w;
        if(dc.x < x) {
                dc.x = x;
@@ -1315,7 +1312,6 @@ setmfact(const void *arg) {
        if(d < 0.1 || d > 0.9)
                return;
        mfact = d;
-       updatetilegeom();
        arrange();
 }
 
@@ -1365,7 +1361,7 @@ setup(void) {
 
        /* init bar */
        for(blw = i = 0; LENGTH(layouts) > 1 && i < LENGTH(layouts); i++) {
-               w = textw(layouts[i].symbol);
+               w = TEXTW(layouts[i].symbol);
                blw = MAX(blw, w);
        }
 
@@ -1437,14 +1433,9 @@ textnw(const char *text, uint len) {
        return XTextWidth(dc.font.xfont, text, len);
 }
 
-uint
-textw(const char *text) {
-       return textnw(text, strlen(text)) + dc.font.height;
-}
-
 void
 tile(void) {
-       int x, y, h, w;
+       int x, y, h, w, mx, my, mw, mh, tx, ty, tw, th;
        uint i, n;
        Client *c;
 
@@ -1452,6 +1443,18 @@ tile(void) {
        if(n == 0)
                return;
 
+       /* master area geometry */
+       mx = wx;
+       my = wy;
+       mw = mfact * ww;
+       mh = wh;
+
+       /* tile area geometry */
+       tx = mx + mw;
+       ty = wy;
+       tw = ww - mw;
+       th = wh;
+
        /* master */
        c = nexttiled(clients);
 
@@ -1618,11 +1621,6 @@ updategeom(void) {
        bx = wx;
        by = showbar ? (topbar ? wy - bh : wy + wh) : -bh;
        bw = ww;
-
-       /* update layout geometries */
-       for(i = 0; i < LENGTH(layouts); i++)
-               if(layouts[i].updategeom)
-                       layouts[i].updategeom();
 }
 
 void
@@ -1678,21 +1676,6 @@ updatesizehints(Client *c) {
 }
 
 void
-updatetilegeom(void) {
-       /* master area geometry */
-       mx = wx;
-       my = wy;
-       mw = mfact * ww;
-       mh = wh;
-
-       /* tile area geometry */
-       tx = mx + mw;
-       ty = wy;
-       tw = ww - mw;
-       th = wh;
-}
-
-void
 updatetitle(Client *c) {
        if(!gettextprop(c->win, netatom[NetWMName], c->name, sizeof c->name))
                gettextprop(c->win, wmatom[WMName], c->name, sizeof c->name);