diff options
-rw-r--r-- | config.arg.h | 4 | ||||
-rw-r--r-- | config.default.h | 4 | ||||
-rw-r--r-- | tile.c | 16 | ||||
-rw-r--r-- | tile.h | 2 |
4 files changed, 16 insertions, 10 deletions
diff --git a/config.arg.h b/config.arg.h index 79bdf78..5cac5b5 100644 --- 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 index 4e9a16f..dab8cc7 100644 --- 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 index 386832d..0955e63 100644 --- 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 index cd4e394..38e0c76 100644 --- 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 */ |