From 21fd715afa47bb0d0f638451de56e46e1d74d4f4 Mon Sep 17 00:00:00 2001 From: bakkeby Date: Sat, 10 Oct 2020 15:25:35 +0200 Subject: [PATCH] swallow / arrange mismatch: swallow needs XMapWindow for the window being called beforehand, whereas arrange needs it called afterwards --- dwm.c | 11 +++++++++-- patch/swallow.c | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/dwm.c b/dwm.c index b7d76a6..a4af6c4 100644 --- a/dwm.c +++ b/dwm.c @@ -2276,17 +2276,24 @@ manage(Window w, XWindowAttributes *wa) unfocus(selmon->sel, 0, c); c->mon->sel = c; #if SWALLOW_PATCH - if (!(term && swallow(term, c))) + if (!(term && swallow(term, c))) { arrange(c->mon); + #if BAR_WINTITLEACTIONS_PATCH + if (!HIDDEN(c)) + XMapWindow(dpy, c->win); + #else + XMapWindow(dpy, c->win); + #endif // BAR_WINTITLEACTIONS_PATCH + } #else arrange(c->mon); - #endif // SWALLOW_PATCH #if BAR_WINTITLEACTIONS_PATCH if (!HIDDEN(c)) XMapWindow(dpy, c->win); #else XMapWindow(dpy, c->win); #endif // BAR_WINTITLEACTIONS_PATCH + #endif // SWALLOW_PATCH focus(NULL); #if BAR_EWMHTAGS_PATCH diff --git a/patch/swallow.c b/patch/swallow.c index 744eba3..0376588 100644 --- a/patch/swallow.c +++ b/patch/swallow.c @@ -18,6 +18,8 @@ swallow(Client *p, Client *c) if (c->noswallow < 0 && !swallowfloating && c->isfloating) return 0; + XMapWindow(dpy, c->win); + detach(c); detachstack(c);