applied Jukka Salmi's setmwfact patch - dwm - dynamic window manager HTML git clone https://git.parazyd.org/dwm DIR Log DIR Files DIR Refs DIR README DIR LICENSE --- DIR commit a923298d3577dca0e69fd70edbef56c7822258e3 DIR parent 04dec4c94390fdf57893615de5b5872dd5abbce4 HTML Author: Anselm R. Garbe <garbeam@gmail.com> Date: Fri, 17 Aug 2007 21:10:50 +0200 applied Jukka Salmi's setmwfact patch Diffstat: M config.arg.h | 4 ++-- M config.default.h | 4 ++-- M tile.c | 16 +++++++++++----- M tile.h | 2 +- 4 files changed, 16 insertions(+), 10 deletions(-) --- DIR 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 }, \ DIR 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 }, \ DIR 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(); } DIR 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 */