diff options
author | Joe <bousset.rudy@gmail.com> | 2022-08-12 12:40:18 +0200 |
---|---|---|
committer | Joe <bousset.rudy@gmail.com> | 2022-08-12 12:40:18 +0200 |
commit | bc0b589fcc3592ab1d7b420a4a47f5a10fa9464c (patch) | |
tree | bdff1d887754aa975cc0bcc98787d129234038c8 /applied/dwm-sizehints-isfreesize-6.2.diff | |
parent | gaps update (diff) | |
download | dwm-bc0b589fcc3592ab1d7b420a4a47f5a10fa9464c.tar.gz dwm-bc0b589fcc3592ab1d7b420a4a47f5a10fa9464c.tar.bz2 dwm-bc0b589fcc3592ab1d7b420a4a47f5a10fa9464c.tar.xz dwm-bc0b589fcc3592ab1d7b420a4a47f5a10fa9464c.tar.zst dwm-bc0b589fcc3592ab1d7b420a4a47f5a10fa9464c.zip |
update
Diffstat (limited to 'applied/dwm-sizehints-isfreesize-6.2.diff')
-rw-r--r-- | applied/dwm-sizehints-isfreesize-6.2.diff | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/applied/dwm-sizehints-isfreesize-6.2.diff b/applied/dwm-sizehints-isfreesize-6.2.diff new file mode 100644 index 0000000..bd9e5da --- /dev/null +++ b/applied/dwm-sizehints-isfreesize-6.2.diff @@ -0,0 +1,103 @@ +From 5d4e92801206d47090236498d35f199e46dd07f6 Mon Sep 17 00:00:00 2001 +From: MLquest8 <miskuzius@gmail.com> +Date: Sat, 20 Jun 2020 15:40:43 +0400 +Subject: [PATCH] sizehints-ruled now with a separate rule "isfreesize" and + cleaner code. + +--- + config.def.h | 8 +++++--- + dwm.c | 16 +++++++++++++--- + 2 files changed, 18 insertions(+), 6 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 1c0b587..0e4a5ea 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -26,9 +26,11 @@ static const Rule rules[] = { + * WM_CLASS(STRING) = instance, class + * WM_NAME(STRING) = title + */ +- /* class instance title tags mask isfloating monitor */ +- { "Gimp", NULL, NULL, 0, 1, -1 }, +- { "Firefox", NULL, NULL, 1 << 8, 0, -1 }, ++ /* class instance title tags mask isfloating isfreesize monitor */ ++ { "Gimp", NULL, NULL, 0, 1, 1, -1 }, ++ { "Firefox", NULL, NULL, 1 << 8, 0, 0, -1 }, ++ { "st", NULL, NULL, 0, 0, 0, -1 }, ++ { "St", NULL, NULL, 0, 0, 0, -1 }, /* St with Xresources patch */ + }; + + /* layout(s) */ +diff --git a/dwm.c b/dwm.c +index 9fd0286..73825d1 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -92,7 +92,7 @@ struct Client { + int basew, baseh, incw, inch, maxw, maxh, minw, minh; + int bw, oldbw; + unsigned int tags; +- int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen; ++ int isfixed, isfloating, isfreesize, isurgent, neverfocus, oldstate, isfullscreen; + Client *next; + Client *snext; + Monitor *mon; +@@ -138,6 +138,7 @@ typedef struct { + const char *title; + unsigned int tags; + int isfloating; ++ int isfreesize; + int monitor; + } Rule; + +@@ -287,6 +288,7 @@ applyrules(Client *c) + + /* rule matching */ + c->isfloating = 0; ++ c->isfreesize = 1; + c->tags = 0; + XGetClassHint(dpy, c->win, &ch); + class = ch.res_class ? ch.res_class : broken; +@@ -299,6 +301,7 @@ applyrules(Client *c) + && (!r->instance || strstr(instance, r->instance))) + { + c->isfloating = r->isfloating; ++ c->isfreesize = r->isfreesize; + c->tags |= r->tags; + for (m = mons; m && m->num != r->monitor; m = m->next); + if (m) +@@ -1952,7 +1955,7 @@ updatesizehints(Client *c) + + if (!XGetWMNormalHints(dpy, c->win, &size, &msize)) + /* size is uninitialized, ensure that size.flags aren't used */ +- size.flags = PSize; ++ size.flags = 0; + if (size.flags & PBaseSize) { + c->basew = size.base_width; + c->baseh = size.base_height; +@@ -1984,6 +1987,11 @@ updatesizehints(Client *c) + c->maxa = (float)size.max_aspect.x / size.max_aspect.y; + } else + c->maxa = c->mina = 0.0; ++ if((size.flags & PSize) && c->isfreesize) { ++ c->basew = size.base_width; ++ c->baseh = size.base_height; ++ c->isfloating = 1; ++ } + c->isfixed = (c->maxw && c->maxh && c->maxw == c->minw && c->maxh == c->minh); + } + +@@ -2012,8 +2020,10 @@ updatewindowtype(Client *c) + + if (state == netatom[NetWMFullscreen]) + setfullscreen(c, 1); +- if (wtype == netatom[NetWMWindowTypeDialog]) ++ if (wtype == netatom[NetWMWindowTypeDialog]) { + c->isfloating = 1; ++ c->isfreesize = 1; ++ } + } + + void +-- +2.26.2 + |