diff -rup dwm.orig/tile.h dwm/tile.h --- dwm.orig/tile.h 2007-08-15 21:53:12.000000000 +0200 +++ dwm/tile.h 2007-08-17 12:48:30.000000000 +0200 @@ -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 */ diff -rup dwm.orig/tile.c dwm/tile.c --- dwm.orig/tile.c 2007-08-16 09:21:04.000000000 +0200 +++ dwm/tile.c 2007-08-17 12:50:07.000000000 +0200 @@ -9,8 +9,8 @@ static double mwfact = MWFACT; /* extern */ void -addtomwfact(const char *arg) { - double delta; +setmwfact(const char *arg) { + double delta, newfact; if(!isarrange(tile)) return; @@ -19,8 +19,17 @@ addtomwfact(const char *arg) { 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 -rup dwm.orig/config.default.h dwm/config.default.h --- dwm.orig/config.default.h 2007-08-17 10:39:09.000000000 +0200 +++ dwm/config.default.h 2007-08-17 12:49:18.000000000 +0200 @@ -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 -rup dwm.orig/config.arg.h dwm/config.arg.h --- dwm.orig/config.arg.h 2007-08-17 10:39:09.000000000 +0200 +++ dwm/config.arg.h 2007-08-17 12:49:26.000000000 +0200 @@ -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 }, \