Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-noborderflicker-20211227-8657affa2a61.diff - sites - public wiki contents o…
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-noborderflicker-20211227-8657affa2a61.diff (1358B)
---
1 diff --git dwm.c dwm.c
2 index a96f33c..34d1321 100644
3 --- dwm.c
4 +++ dwm.c
5 @@ -236,6 +236,7 @@ static int xerrorstart(Display *dpy, XErrorEvent *ee…
6 static void zoom(const Arg *arg);
7
8 /* variables */
9 +static Client *lastfocused = NULL;
10 static const char broken[] = "broken";
11 static char stext[256];
12 static int screen;
13 @@ -799,7 +800,11 @@ focus(Client *c)
14 detachstack(c);
15 attachstack(c);
16 grabbuttons(c, 1);
17 + /* set new focused border first to avoid flickering */
18 XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBord…
19 + /* lastfocused may be us if another window was unmanage…
20 + if (lastfocused && lastfocused != c)
21 + XSetWindowBorder(dpy, lastfocused->win, scheme[…
22 setfocus(c);
23 } else {
24 XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentT…
25 @@ -1758,7 +1763,7 @@ unfocus(Client *c, int setfocus)
26 if (!c)
27 return;
28 grabbuttons(c, 0);
29 - XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColBorder].pix…
30 + lastfocused = c;
31 if (setfocus) {
32 XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentT…
33 XDeleteProperty(dpy, root, netatom[NetActiveWindow]);
34 @@ -1784,6 +1789,8 @@ unmanage(Client *c, int destroyed)
35 XSetErrorHandler(xerror);
36 XUngrabServer(dpy);
37 }
38 + if (lastfocused == c)
39 + lastfocused = NULL;
40 free(c);
41 focus(NULL);
42 updateclientlist();
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.