diff options
| author | bakkeby <[email protected]> | 2022-06-20 14:00:09 +0200 |
|---|---|---|
| committer | bakkeby <[email protected]> | 2022-06-20 14:00:09 +0200 |
| commit | 2f70c42aab2ac71f5cdb1996499247f2268c98ce (patch) | |
| tree | daa286e6af9ea7ea0abb8ff77a62182759ce6a67 /dwm.c | |
| parent | d7456b235a0eb549c752d0cf06198fd29264e21a (diff) | |
| download | dwm-flexipatch-2f70c42aab2ac71f5cdb1996499247f2268c98ce.tar.gz dwm-flexipatch-2f70c42aab2ac71f5cdb1996499247f2268c98ce.zip | |
Adding renamed scratchpads patch
Diffstat (limited to 'dwm.c')
| -rw-r--r-- | dwm.c | 60 |
1 files changed, 52 insertions, 8 deletions
@@ -101,7 +101,7 @@ #define WIDTH(X) ((X)->w + 2 * (X)->bw) #define HEIGHT(X) ((X)->h + 2 * (X)->bw) #define WTYPE "_NET_WM_WINDOW_TYPE_" -#if SCRATCHPADS_PATCH +#if SCRATCHPADS_PATCH && !RENAMED_SCRATCHPADS_PATCH #define TOTALTAGS (NUMTAGS + LENGTH(scratchpads)) #define TAGMASK ((1 << TOTALTAGS) - 1) #define SPTAG(i) ((1 << NUMTAGS) << (i)) @@ -144,6 +144,10 @@ enum { SchemeHidNorm, SchemeHidSel, SchemeUrg, + #if RENAMED_SCRATCHPADS_PATCH + SchemeScratchSel, + SchemeScratchNorm, + #endif // RENAMED_SCRATCHPADS_PATCH #if BAR_FLEXWINTITLE_PATCH SchemeFlexActTTB, SchemeFlexActLTR, @@ -402,6 +406,9 @@ struct Client { #if IPC_PATCH ClientState prevstate; #endif // IPC_PATCH + #if RENAMED_SCRATCHPADS_PATCH + char scratchkey; + #endif // RENAMED_SCRATCHPADS_PATCH #if XKB_PATCH XkbInfo *xkb; #endif // XKB_PATCH @@ -543,6 +550,9 @@ typedef struct { const char *floatpos; #endif // FLOATPOS_PATCH int monitor; + #if RENAMED_SCRATCHPADS_PATCH + const char scratchkey; + #endif // RENAMED_SCRATCHPADS_PATCH #if XKB_PATCH int xkb_layout; #endif // XKB_PATCH @@ -849,6 +859,9 @@ applyrules(Client *c) #endif // SIZEHINTS_ISFREESIZE_PATCH c->isfloating = 0; c->tags = 0; + #if RENAMED_SCRATCHPADS_PATCH + c->scratchkey = 0; + #endif // RENAMED_SCRATCHPADS_PATCH XGetClassHint(dpy, c->win, &ch); class = ch.res_class ? ch.res_class : broken; instance = ch.res_name ? ch.res_name : broken; @@ -890,7 +903,9 @@ applyrules(Client *c) #endif // SIZEHINTS_ISFREESIZE_PATCH c->isfloating = r->isfloating; c->tags |= r->tags; - #if SCRATCHPADS_PATCH + #if RENAMED_SCRATCHPADS_PATCH + c->scratchkey = r->scratchkey; + #elif SCRATCHPADS_PATCH if ((r->tags & SPTAGMASK) && r->isfloating) { c->x = c->mon->wx + (c->mon->ww / 2 - WIDTH(c) / 2); c->y = c->mon->wy + (c->mon->wh / 2 - HEIGHT(c) / 2); @@ -963,7 +978,7 @@ applyrules(Client *c) XFree(ch.res_name); #if EMPTYVIEW_PATCH if (c->tags & TAGMASK) c->tags = c->tags & TAGMASK; - #if SCRATCHPADS_PATCH + #if SCRATCHPADS_PATCH && !RENAMED_SCRATCHPADS_PATCH else if (c->mon->tagset[c->mon->seltags]) c->tags = c->mon->tagset[c->mon->seltags] & ~SPTAGMASK; #elif SCRATCHPAD_ALT_1_PATCH else if (c->tags != SCRATCHPAD_MASK && c->mon->tagset[c->mon->seltags]) c->tags = c->mon->tagset[c->mon->seltags]; @@ -971,7 +986,7 @@ applyrules(Client *c) else if (c->mon->tagset[c->mon->seltags]) c->tags = c->mon->tagset[c->mon->seltags]; #endif // SCRATCHPADS_PATCH else c->tags = 1; - #elif SCRATCHPADS_PATCH + #elif SCRATCHPADS_PATCH && !RENAMED_SCRATCHPADS_PATCH c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : (c->mon->tagset[c->mon->seltags] & ~SPTAGMASK); #elif SCRATCHPAD_ALT_1_PATCH if (c->tags != SCRATCHPAD_MASK) @@ -1997,10 +2012,21 @@ focus(Client *c) attachstack(c); grabbuttons(c, 1); #if !BAR_FLEXWINTITLE_PATCH + #if RENAMED_SCRATCHPADS_PATCH + if (c->scratchkey != 0 && c->isfloating) + XSetWindowBorder(dpy, c->win, scheme[SchemeScratchSel][ColFloat].pixel); + else if (c->scratchkey != 0) + XSetWindowBorder(dpy, c->win, scheme[SchemeScratchSel][ColBorder].pixel); + else if (c->isfloating) + XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColFloat].pixel); + else + XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBorder].pixel); + #else if (c->isfloating) XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColFloat].pixel); else XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBorder].pixel); + #endif // RENAMED_SCRATCHPADS_PATCH #endif // BAR_FLEXWINTITLE_PATCH setfocus(c); } else { @@ -2688,7 +2714,7 @@ movemouse(const Arg *arg) XUngrabPointer(dpy, CurrentTime); if ((m = recttomon(c->x, c->y, c->w, c->h)) != selmon) { - #if SCRATCHPADS_PATCH + #if SCRATCHPADS_PATCH && !RENAMED_SCRATCHPADS_PATCH if (c->tags & SPTAGMASK) { c->mon->tagset[c->mon->seltags] ^= (c->tags & SPTAGMASK); m->tagset[m->seltags] |= (c->tags & SPTAGMASK); @@ -3040,7 +3066,7 @@ resizemouse(const Arg *arg) XUngrabPointer(dpy, CurrentTime); while (XCheckMaskEvent(dpy, EnterWindowMask, &ev)); if ((m = recttomon(c->x, c->y, c->w, c->h)) != selmon) { - #if SCRATCHPADS_PATCH + #if SCRATCHPADS_PATCH && !RENAMED_SCRATCHPADS_PATCH if (c->tags & SPTAGMASK) { c->mon->tagset[c->mon->seltags] ^= (c->tags & SPTAGMASK); m->tagset[m->seltags] |= (c->tags & SPTAGMASK); @@ -3239,7 +3265,7 @@ sendmon(Client *c, Monitor *m) arrange(c->mon); #endif // SENDMON_KEEPFOCUS_PATCH c->mon = m; - #if SCRATCHPADS_PATCH + #if SCRATCHPADS_PATCH && !RENAMED_SCRATCHPADS_PATCH if (!(c->tags & SPTAGMASK)) #endif // SCRATCHPADS_PATCH #if EMPTYVIEW_PATCH @@ -3782,6 +3808,7 @@ showhide(Client *c) if (!c) return; if (ISVISIBLE(c)) { + #if !RENAMED_SCRATCHPADS_PATCH #if SCRATCHPADS_PATCH && SCRATCHPADS_KEEP_POSITION_AND_SIZE_PATCH if ( (c->tags & SPTAGMASK) && @@ -3802,6 +3829,7 @@ showhide(Client *c) c->y = c->mon->wy + (c->mon->wh / 2 - HEIGHT(c) / 2); } #endif // SCRATCHPADS_KEEP_POSITION_AND_SIZE_PATCH | SCRATCHPADS_PATCH + #endif // RENAMED_SCRATCHPADS_PATCH /* show clients top down */ #if SAVEFLOATS_PATCH || EXRESIZE_PATCH if (!c->mon->lt[c->mon->sellt]->arrange && c->sfx != -9999 && !c->isfullscreen) { @@ -3829,6 +3857,11 @@ showhide(Client *c) resize(c, c->x, c->y, c->w, c->h, 0); showhide(c->snext); } else { + #if RENAMED_SCRATCHPADS_PATCH && RENAMED_SCRATCHPADS_AUTO_HIDE_PATCH + /* optional: auto-hide scratchpads when moving to other tags */ + if (c->scratchkey != 0 && !(c->tags & c->mon->tagset[c->mon->seltags])) + c->tags = 0; + #endif // RENAMED_SCRATCHPADS_AUTO_HIDE_PATCH /* hide clients bottom up */ showhide(c->snext); XMoveWindow(dpy, c->win, WIDTH(c) * -2, c->y); @@ -4168,7 +4201,7 @@ toggleview(const Arg *arg) selmon->tagset[selmon->seltags] = newtagset; #if PERTAG_PATCH - #if SCRATCHPADS_PATCH + #if SCRATCHPADS_PATCH && !RENAMED_SCRATCHPADS_PATCH if (newtagset == ~SPTAGMASK) #else if (newtagset == ~0) @@ -4238,10 +4271,21 @@ unfocus(Client *c, int setfocus, Client *nextfocus) #endif // LOSEFULLSCREEN_PATCH grabbuttons(c, 0); #if !BAR_FLEXWINTITLE_PATCH + #if RENAMED_SCRATCHPADS_PATCH + if (c->scratchkey != 0 && c->isfloating) + XSetWindowBorder(dpy, c->win, scheme[SchemeScratchNorm][ColFloat].pixel); + else if (c->scratchkey != 0) + XSetWindowBorder(dpy, c->win, scheme[SchemeScratchNorm][ColBorder].pixel); + else if (c->isfloating) + XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColFloat].pixel); + else + XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColBorder].pixel); + #else if (c->isfloating) XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColFloat].pixel); else XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColBorder].pixel); + #endif // RENAMED_SCRATCHPADS_PATCH #endif // BAR_FLEXWINTITLE_PATCH if (setfocus) { XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); |
