diff --git a/config.def.h b/config.def.h index 230e701..45a78c8 100644 --- a/config.def.h +++ b/config.def.h @@ -26,7 +26,7 @@ static Rule rules[] = { }; /* layout(s) */ -static int mwp = 55; /* master area width percentage [5..95] */ +static int mwp = 55; /* master area width percentage [5..100] */ static int mn = 1; /* number of clients in master area */ static Bool resizehints = True; /* False means respect size hints in tiled resizals */ diff --git a/dwm.c b/dwm.c index ad1886d..3f34965 100644 --- a/dwm.c +++ b/dwm.c @@ -191,7 +191,7 @@ static void togglebar(const Arg *arg); static void togglefloating(const Arg *arg); static void toggletag(const Arg *arg); static void toggleview(const Arg *arg); -static void tweak(int *var, const int *val, int min, int max); +static void tweak(int *ip, int i, int min, int max); static void tweakmwp(const Arg *arg); static void tweakmn(const Arg *arg); static void unmanage(Client *c); @@ -1481,24 +1481,29 @@ toggleview(const Arg *arg) { } void -tweak(int *var, const int *val, int min, int max) { - int i; - - i = val[1] + (val[0] == Abs ? 0 : *var); - if(!lt[sellt]->arrange || i < min || i > max) +tweak(int *ip, int i, int min, int max) { + if(!lt[sellt]->arrange) return; - *var = i; + if(i < min) + i = min; + else if(i > max) + i = max; + *ip = i; arrange(); } void tweakmn(const Arg *arg) { - tweak(&mn, arg->v, 1, wh / (1 + 2 * borderpx)); + int *a = arg->v; + + tweak(&mn, a[0] * mn + a[1], 1, wh / (1 + 2 * borderpx)); } void tweakmwp(const Arg *arg) { - tweak(&mwp, arg->v, 5, 95); + int *a = arg->v; + + tweak(&mwp, a[0] * mwp + a[1], 5, 100); } void