From 40e2cac4e97bffceabd72a937e98b40ebfd2382f Mon Sep 17 00:00:00 2001 From: bakkeby Date: Wed, 18 Jan 2023 21:18:14 +0100 Subject: [PATCH] pertag: simplifying implementation by removing prevtag --- dwm.c | 9 +++------ patch/pertag.c | 31 ++++++++++++------------------- 2 files changed, 15 insertions(+), 25 deletions(-) diff --git a/dwm.c b/dwm.c index a0ae076..bb6c169 100644 --- a/dwm.c +++ b/dwm.c @@ -1687,7 +1687,7 @@ createmon(void) #if PERTAG_PATCH if (!(m->pertag = (Pertag *)calloc(1, sizeof(Pertag)))) die("fatal: could not malloc() %u bytes\n", sizeof(Pertag)); - m->pertag->curtag = m->pertag->prevtag = 1; + m->pertag->curtag = 1; for (i = 0; i <= NUMTAGS; i++) { #if FLEXTILE_DELUXE_LAYOUT m->pertag->nstacks[i] = m->nstack; @@ -4261,12 +4261,10 @@ toggleview(const Arg *arg) if (newtagset == ~0) #endif // SCRATCHPADS_PATCH { - selmon->pertag->prevtag = selmon->pertag->curtag; selmon->pertag->curtag = 0; } /* test if the user did not select the same tag */ if (!(newtagset & 1 << (selmon->pertag->curtag - 1))) { - selmon->pertag->prevtag = selmon->pertag->curtag; for (i = 0; !(newtagset & 1 << i); i++) ; selmon->pertag->curtag = i + 1; } @@ -4908,11 +4906,10 @@ view(const Arg *arg) tagpreviewswitchtag(); #endif // BAR_TAGPREVIEW_PATCH selmon->seltags ^= 1; /* toggle sel tagset */ - #if PERTAG_PATCH - pertagview(arg); - #else if (arg->ui & TAGMASK) selmon->tagset[selmon->seltags] = arg->ui & TAGMASK; + #if PERTAG_PATCH + pertagview(arg); #endif // PERTAG_PATCH #if TAGSYNC_PATCH } diff --git a/patch/pertag.c b/patch/pertag.c index a9f5565..292076e 100644 --- a/patch/pertag.c +++ b/patch/pertag.c @@ -1,5 +1,5 @@ struct Pertag { - unsigned int curtag, prevtag; /* current and previous tag */ + unsigned int curtag; /* current tag index */ int nmasters[NUMTAGS + 1]; /* number of windows in master area */ #if FLEXTILE_DELUXE_LAYOUT int nstacks[NUMTAGS + 1]; /* number of windows in primary stack area */ @@ -29,25 +29,18 @@ void pertagview(const Arg *arg) { int i; - unsigned int tmptag; - if (arg->ui & TAGMASK) { - selmon->pertag->prevtag = selmon->pertag->curtag; - selmon->tagset[selmon->seltags] = arg->ui & TAGMASK; - #if SCRATCHPADS_PATCH && !RENAMED_SCRATCHPADS_PATCH - if (arg->ui == ~SPTAGMASK) - #else - if (arg->ui == ~0) - #endif // SCRATCHPADS_PATCH - selmon->pertag->curtag = 0; - else { - for (i = 0; !(arg->ui & 1 << i); i++) ; - selmon->pertag->curtag = i + 1; - } - } else { - tmptag = selmon->pertag->prevtag; - selmon->pertag->prevtag = selmon->pertag->curtag; - selmon->pertag->curtag = tmptag; + + #if SCRATCHPADS_PATCH && !RENAMED_SCRATCHPADS_PATCH + if (arg->ui == ~SPTAGMASK) + #else + if (arg->ui == ~0) + #endif // SCRATCHPADS_PATCH + selmon->pertag->curtag = 0; + else { + for (i = 0; !(selmon->tagset[selmon->seltags] & 1 << i); i++); + selmon->pertag->curtag = i + 1; } + selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag]; #if FLEXTILE_DELUXE_LAYOUT selmon->nstack = selmon->pertag->nstacks[selmon->pertag->curtag];