sites

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

commit 131bf5fe9e1dd6697fdb26037ade243d2ff72d9f
parent dfb174eda291b0f31f5e84022513849afa5d4473
Author: Chris Down <chris@chrisdown.name>
Date:   Fri, 31 Dec 2021 00:07:51 +0000

[dwm][patches][noborderflicker] Handle when lastfocused == c

Diffstat:
Mdwm.suckless.org/patches/noborderflicker/dwm-noborderflicker-20211227-8657affa2a61.diff | 11++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/dwm.suckless.org/patches/noborderflicker/dwm-noborderflicker-20211227-8657affa2a61.diff b/dwm.suckless.org/patches/noborderflicker/dwm-noborderflicker-20211227-8657affa2a61.diff @@ -1,5 +1,5 @@ diff --git dwm.c dwm.c -index a96f33c..50ccf00 100644 +index a96f33c..3fd4a88 100644 --- dwm.c +++ dwm.c @@ -236,6 +236,7 @@ static int xerrorstart(Display *dpy, XErrorEvent *ee); @@ -10,18 +10,19 @@ index a96f33c..50ccf00 100644 static const char broken[] = "broken"; static char stext[256]; static int screen; -@@ -799,7 +800,10 @@ focus(Client *c) +@@ -799,7 +800,11 @@ focus(Client *c) detachstack(c); attachstack(c); grabbuttons(c, 1); + /* set new focused border first to avoid flickering */ XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBorder].pixel); -+ if (lastfocused) ++ /* lastfocused may be us if another window was unmanaged */ ++ if (lastfocused != c) + XSetWindowBorder(dpy, lastfocused->win, scheme[SchemeNorm][ColBorder].pixel); setfocus(c); } else { XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); -@@ -1758,7 +1762,7 @@ unfocus(Client *c, int setfocus) +@@ -1758,7 +1763,7 @@ unfocus(Client *c, int setfocus) if (!c) return; grabbuttons(c, 0); @@ -30,7 +31,7 @@ index a96f33c..50ccf00 100644 if (setfocus) { XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); XDeleteProperty(dpy, root, netatom[NetActiveWindow]); -@@ -1784,6 +1788,8 @@ unmanage(Client *c, int destroyed) +@@ -1784,6 +1789,8 @@ unmanage(Client *c, int destroyed) XSetErrorHandler(xerror); XUngrabServer(dpy); }