Introduction
Introduction Statistics Contact Development Disclaimer Help
st-anysize-20201003-407a3d0.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
st-anysize-20201003-407a3d0.diff (4978B)
---
1 From 407a3d065645ee814e04a6c62a2d2dea04a1c18c Mon Sep 17 00:00:00 2001
2 From: Finn Rayment <[email protected]>
3 Date: Sat, 3 Oct 2020 14:47:04 +0200
4 Subject: [PATCH] Applied anysize patch fix
5
6 ---
7 x.c | 52 ++++++++++++++++++++++++++++------------------------
8 1 file changed, 28 insertions(+), 24 deletions(-)
9
10 diff --git a/x.c b/x.c
11 index 210f184..a11a992 100644
12 --- a/x.c
13 +++ b/x.c
14 @@ -81,6 +81,7 @@ typedef XftGlyphFontSpec GlyphFontSpec;
15 typedef struct {
16 int tw, th; /* tty width and height */
17 int w, h; /* window width and height */
18 + int hborderpx, vborderpx;
19 int ch; /* char height */
20 int cw; /* char width */
21 int mode; /* window state/mode flags */
22 @@ -331,7 +332,7 @@ ttysend(const Arg *arg)
23 int
24 evcol(XEvent *e)
25 {
26 - int x = e->xbutton.x - borderpx;
27 + int x = e->xbutton.x - win.hborderpx;
28 LIMIT(x, 0, win.tw - 1);
29 return x / win.cw;
30 }
31 @@ -339,7 +340,7 @@ evcol(XEvent *e)
32 int
33 evrow(XEvent *e)
34 {
35 - int y = e->xbutton.y - borderpx;
36 + int y = e->xbutton.y - win.vborderpx;
37 LIMIT(y, 0, win.th - 1);
38 return y / win.ch;
39 }
40 @@ -721,6 +722,9 @@ cresize(int width, int height)
41 col = MAX(1, col);
42 row = MAX(1, row);
43
44 + win.hborderpx = (win.w - col * win.cw) / 2;
45 + win.vborderpx = (win.h - row * win.ch) / 2;
46 +
47 tresize(col, row);
48 xresize(col, row);
49 ttyresize(win.tw, win.th);
50 @@ -1121,8 +1125,8 @@ xinit(int cols, int rows)
51 xloadcols();
52
53 /* adjust fixed window geometry */
54 - win.w = 2 * borderpx + cols * win.cw;
55 - win.h = 2 * borderpx + rows * win.ch;
56 + win.w = 2 * win.hborderpx + cols * win.cw;
57 + win.h = 2 * win.vborderpx + rows * win.ch;
58 if (xw.gm & XNegative)
59 xw.l += DisplayWidth(xw.dpy, xw.scr) - win.w - 2;
60 if (xw.gm & YNegative)
61 @@ -1210,7 +1214,7 @@ xinit(int cols, int rows)
62 int
63 xmakeglyphfontspecs(XftGlyphFontSpec *specs, const Glyph *glyphs, int l…
64 {
65 - float winx = borderpx + x * win.cw, winy = borderpx + y * win.c…
66 + float winx = win.hborderpx + x * win.cw, winy = win.vborderpx +…
67 ushort mode, prevmode = USHRT_MAX;
68 Font *font = &dc.font;
69 int frcflags = FRC_NORMAL;
70 @@ -1343,7 +1347,7 @@ void
71 xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len,…
72 {
73 int charlen = len * ((base.mode & ATTR_WIDE) ? 2 : 1);
74 - int winx = borderpx + x * win.cw, winy = borderpx + y * win.ch,
75 + int winx = win.hborderpx + x * win.cw, winy = win.vborderpx + y…
76 width = charlen * win.cw;
77 Color *fg, *bg, *temp, revfg, revbg, truefg, truebg;
78 XRenderColor colfg, colbg;
79 @@ -1433,17 +1437,17 @@ xdrawglyphfontspecs(const XftGlyphFontSpec *spec…
80
81 /* Intelligent cleaning up of the borders. */
82 if (x == 0) {
83 - xclear(0, (y == 0)? 0 : winy, borderpx,
84 + xclear(0, (y == 0)? 0 : winy, win.vborderpx,
85 winy + win.ch +
86 - ((winy + win.ch >= borderpx + win.th)? win.h : …
87 + ((winy + win.ch >= win.vborderpx + win.th)? win…
88 }
89 - if (winx + width >= borderpx + win.tw) {
90 + if (winx + width >= win.hborderpx + win.tw) {
91 xclear(winx + width, (y == 0)? 0 : winy, win.w,
92 - ((winy + win.ch >= borderpx + win.th)? win.h : …
93 + ((winy + win.ch >= win.vborderpx + win.th)? win…
94 }
95 if (y == 0)
96 - xclear(winx, 0, winx + width, borderpx);
97 - if (winy + win.ch >= borderpx + win.th)
98 + xclear(winx, 0, winx + width, win.hborderpx);
99 + if (winy + win.ch >= win.vborderpx + win.th)
100 xclear(winx, winy + win.ch, winx + width, win.h);
101
102 /* Clean up the region we want to draw to. */
103 @@ -1537,35 +1541,35 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int…
104 case 3: /* Blinking Underline */
105 case 4: /* Steady Underline */
106 XftDrawRect(xw.draw, &drawcol,
107 - borderpx + cx * win.cw,
108 - borderpx + (cy + 1) * win.ch - \
109 + win.hborderpx + cx * win.cw,
110 + win.vborderpx + (cy + 1) * win.…
111 cursorthickness,
112 win.cw, cursorthickness);
113 break;
114 case 5: /* Blinking bar */
115 case 6: /* Steady bar */
116 XftDrawRect(xw.draw, &drawcol,
117 - borderpx + cx * win.cw,
118 - borderpx + cy * win.ch,
119 + win.hborderpx + cx * win.cw,
120 + win.vborderpx + cy * win.ch,
121 cursorthickness, win.ch);
122 break;
123 }
124 } else {
125 XftDrawRect(xw.draw, &drawcol,
126 - borderpx + cx * win.cw,
127 - borderpx + cy * win.ch,
128 + win.hborderpx + cx * win.cw,
129 + win.vborderpx + cy * win.ch,
130 win.cw - 1, 1);
131 XftDrawRect(xw.draw, &drawcol,
132 - borderpx + cx * win.cw,
133 - borderpx + cy * win.ch,
134 + win.hborderpx + cx * win.cw,
135 + win.vborderpx + cy * win.ch,
136 1, win.ch - 1);
137 XftDrawRect(xw.draw, &drawcol,
138 - borderpx + (cx + 1) * win.cw - 1,
139 - borderpx + cy * win.ch,
140 + win.hborderpx + (cx + 1) * win.cw - 1,
141 + win.vborderpx + cy * win.ch,
142 1, win.ch - 1);
143 XftDrawRect(xw.draw, &drawcol,
144 - borderpx + cx * win.cw,
145 - borderpx + (cy + 1) * win.ch - 1,
146 + win.hborderpx + cx * win.cw,
147 + win.vborderpx + (cy + 1) * win.ch - 1,
148 win.cw, 1);
149 }
150 }
151 --
152 2.28.0
153
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.