dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit a923298d3577dca0e69fd70edbef56c7822258e3
parent 04dec4c94390fdf57893615de5b5872dd5abbce4
Author: Anselm R. Garbe <garbeam@gmail.com>
Date:   Fri, 17 Aug 2007 21:10:50 +0200

applied Jukka Salmi's setmwfact patch
Diffstat:
Mconfig.arg.h | 4++--
Mconfig.default.h | 4++--
Mtile.c | 16+++++++++++-----
Mtile.h | 2+-
4 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/config.arg.h b/config.arg.h
@@ -48,8 +48,8 @@ Key keys[] = { \
     { MODKEY,            XK_b,        togglebar,    NULL }, \
     { MODKEY,            XK_j,        focusnext,    NULL }, \
     { MODKEY,            XK_k,        focusprev,    NULL }, \
-    { MODKEY,            XK_h,        addtomwfact,    "-0.05" }, \
-    { MODKEY,            XK_l,        addtomwfact,    "0.05" }, \
+    { MODKEY,            XK_h,        setmwfact,    "-0.05" }, \
+    { MODKEY,            XK_l,        setmwfact,    "+0.05" }, \
     { MODKEY,            XK_m,        togglemax,    NULL }, \
     { MODKEY,            XK_Return,    zoom,        NULL }, \
     { MODKEY|ShiftMask,        XK_space,    togglefloating,    NULL }, \
diff --git a/config.default.h b/config.default.h
@@ -46,8 +46,8 @@ Key keys[] = { \
     { MODKEY,            XK_b,        togglebar,    NULL }, \
     { MODKEY,            XK_j,        focusnext,    NULL }, \
     { MODKEY,            XK_k,        focusprev,    NULL }, \
-    { MODKEY,            XK_h,        addtomwfact,    "-0.05" }, \
-    { MODKEY,            XK_l,        addtomwfact,    "0.05" }, \
+    { MODKEY,            XK_h,        setmwfact,    "-0.05" }, \
+    { MODKEY,            XK_l,        setmwfact,    "+0.05" }, \
     { MODKEY,            XK_m,        togglemax,    NULL }, \
     { MODKEY,            XK_Return,    zoom,        NULL }, \
     { MODKEY|ShiftMask,        XK_space,    togglefloating,    NULL }, \
diff --git a/tile.c b/tile.c
@@ -9,18 +9,24 @@ static double mwfact = MWFACT;
 /* extern */
 
 void
-addtomwfact(const char *arg) {
-    double delta;
+setmwfact(const char *arg) {
+    double delta, newfact;
 
     if(!isarrange(tile))
         return;
-
     /* arg handling, manipulate mwfact */
     if(arg == NULL)
         mwfact = MWFACT;
     else if(1 == sscanf(arg, "%lf", &delta)) {
-        if(delta + mwfact > 0.1 && delta + mwfact < 0.9)
-            mwfact += delta;
+        if(arg[0] != '+' && arg[0] != '-')
+            newfact = delta;
+        else
+            newfact = mwfact + delta;
+        if(newfact < 0.1)
+            newfact = 0.1;
+        else if(newfact > 0.9)
+            newfact = 0.9;
+        mwfact = newfact;
     }
     arrange();
 }
diff --git a/tile.h b/tile.h
@@ -1,6 +1,6 @@
 /* See LICENSE file for copyright and license details. */
 
 /* tile.c */
-void addtomwfact(const char *arg);    /* adds arg value [0.1 .. 0.9] to master width factor */
+void setmwfact(const char *arg);    /* sets master width factor */
 void tile(void);            /* arranges all windows tiled */
 void zoom(const char *arg);        /* zooms the focused client to master area, arg is ignored */