sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

commit d5f71c488817ac45436d22737998f55472071aa0
parent adb57c894a14e7f3da338275e1f50be1aa8efb6e
Author: anukul <hi@anukul.com.np>
Date:   Sun, 10 Apr 2022 12:38:54 +0545

[dwm][patch]fixed bug on spawning new scratchpad

Diffstat:
Mdwm.suckless.org/patches/multipledynamicscratchpads/dwm-multiple-dynamic-scratchpads.diff | 21++++++++++++---------
Mdwm.suckless.org/patches/multipledynamicscratchpads/index.md | 2+-
2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/dwm.suckless.org/patches/multipledynamicscratchpads/dwm-multiple-dynamic-scratchpads.diff b/dwm.suckless.org/patches/multipledynamicscratchpads/dwm-multiple-dynamic-scratchpads.diff @@ -14,10 +14,10 @@ index a2ac963..1c82453 100644 + { MODKEY|ShiftMask, XK_u, scratchpad_hide, {.i = 3} }, + { MODKEY|ShiftMask, XK_r, scratchpad_remove, {0} }, }; - + /* button definitions */ diff --git a/dwm.c b/dwm.c -index 5e4d494..8e6fe18 100644 +index 5f16260..202038f 100644 --- a/dwm.c +++ b/dwm.c @@ -195,6 +195,11 @@ static void resizemouse(const Arg *arg); @@ -35,7 +35,7 @@ index 5e4d494..8e6fe18 100644 @@ -269,11 +274,19 @@ static Drw *drw; static Monitor *mons, *selmon; static Window root, wmcheckwin; - + +/* scratchpad */ +#define SCRATCHPAD_MASK_1 (1u << sizeof tags / sizeof * tags) +#define SCRATCHPAD_MASK_2 (1u << (sizeof tags / sizeof * tags + 1)) @@ -46,11 +46,11 @@ index 5e4d494..8e6fe18 100644 +static Client *scratchpad_last_showed_3 = NULL; /* configuration, allows nested code to access above variables */ #include "config.h" - + /* compile-time check if all tags fit into an unsigned int bit array. */ -struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; }; +struct NumTags { char limitexceeded[LENGTH(tags) > 28 ? -1 : 1]; }; - + /* function implementations */ void @@ -309,7 +322,9 @@ applyrules(Client *c) @@ -61,12 +61,12 @@ index 5e4d494..8e6fe18 100644 c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : c->mon->tagset[c->mon->seltags]; + } } - + int -@@ -1408,6 +1423,121 @@ scan(void) +@@ -1412,6 +1427,124 @@ scan(void) } } - + +static void scratchpad_hide(const Arg *arg) { + if(scratchpad_hide_flag < 4) { + if(arg->i == 1) { @@ -103,12 +103,15 @@ index 5e4d494..8e6fe18 100644 + if(selmon->sel && (scratchpad_last_showed_1 != NULL || scratchpad_last_showed_2 != NULL ||scratchpad_last_showed_3 != NULL) && (selmon->sel == scratchpad_last_showed_1 || selmon->sel == scratchpad_last_showed_2 || selmon->sel == scratchpad_last_showed_3)) { + if(scratchpad_last_showed_1 == selmon->sel) { + scratchpad_last_showed_1 = NULL; ++ scratchpad_hide_flag--; + } + else if(scratchpad_last_showed_2 == selmon->sel) { + scratchpad_last_showed_2 = NULL; ++ scratchpad_hide_flag--; + } + else if(scratchpad_last_showed_3 == selmon->sel) { + scratchpad_last_showed_3 = NULL; ++ scratchpad_hide_flag--; + } + } +} @@ -185,7 +188,7 @@ index 5e4d494..8e6fe18 100644 void sendmon(Client *c, Monitor *m) { -@@ -1781,6 +1911,16 @@ unmanage(Client *c, int destroyed) +@@ -1785,6 +1918,16 @@ unmanage(Client *c, int destroyed) XSetErrorHandler(xerror); XUngrabServer(dpy); } diff --git a/dwm.suckless.org/patches/multipledynamicscratchpads/index.md b/dwm.suckless.org/patches/multipledynamicscratchpads/index.md @@ -14,7 +14,7 @@ A `config.def.h` change is included in the patch. Download -------- -* [dwm-multiple-dynamic-scratchpads.diff](dwm-multiple-dynamic-scratchpads.diff) - 2021-10-30 +* [dwm-multiple-dynamic-scratchpads.diff](dwm-multiple-dynamic-scratchpads.diff) - 2022-04-10 Authors -------