Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-noborderselflickerfix-2022042627-d93ff48803f0.diff - sites - public wiki co…
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-noborderselflickerfix-2022042627-d93ff48803f0.diff (1604B)
---
1 diff --git dwm.c dwm.c
2 index 0fc328a..4a767bd 100644
3 --- dwm.c
4 +++ dwm.c
5 @@ -206,6 +206,7 @@ static void setup(void);
6 static void seturgent(Client *c, int urg);
7 static void showhide(Client *c);
8 static void sigchld(int unused);
9 +static int solitary(Client *c);
10 static void spawn(const Arg *arg);
11 static void tag(const Arg *arg);
12 static void tagmon(const Arg *arg);
13 @@ -802,7 +803,11 @@ focus(Client *c)
14 detachstack(c);
15 attachstack(c);
16 grabbuttons(c, 1);
17 - XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBord…
18 + /* Avoid flickering when another client appears and the…
19 + * is restored */
20 + if (!solitary(c)) {
21 + XSetWindowBorder(dpy, c->win, scheme[SchemeSel]…
22 + }
23 setfocus(c);
24 } else {
25 XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentT…
26 @@ -1288,6 +1293,11 @@ resizeclient(Client *c, int x, int y, int w, int …
27 c->oldw = c->w; c->w = wc.width = w;
28 c->oldh = c->h; c->h = wc.height = h;
29 wc.border_width = c->bw;
30 + if (solitary(c)) {
31 + c->w = wc.width += c->bw * 2;
32 + c->h = wc.height += c->bw * 2;
33 + wc.border_width = 0;
34 + }
35 XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorder…
36 configure(c);
37 XSync(dpy, False);
38 @@ -1642,6 +1652,15 @@ sigchld(int unused)
39 while (0 < waitpid(-1, NULL, WNOHANG));
40 }
41
42 +int
43 +solitary(Client *c)
44 +{
45 + return ((nexttiled(c->mon->clients) == c && !nexttiled(c->next))
46 + || &monocle == c->mon->lt[c->mon->sellt]->arrange)
47 + && !c->isfullscreen && !c->isfloating
48 + && NULL != c->mon->lt[c->mon->sellt]->arrange;
49 +}
50 +
51 void
52 spawn(const Arg *arg)
53 {
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.