-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
181 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
From 407a3d065645ee814e04a6c62a2d2dea04a1c18c Mon Sep 17 00:00:00 2001 | ||
From: Finn Rayment <finn@rayment.fr> | ||
Date: Sat, 3 Oct 2020 14:47:04 +0200 | ||
Subject: [PATCH] Applied anysize patch fix | ||
|
||
--- | ||
x.c | 52 ++++++++++++++++++++++++++++------------------------ | ||
1 file changed, 28 insertions(+), 24 deletions(-) | ||
|
||
diff --git a/x.c b/x.c | ||
index 210f184..a11a992 100644 | ||
--- a/x.c | ||
+++ b/x.c | ||
@@ -81,6 +81,7 @@ typedef XftGlyphFontSpec GlyphFontSpec; | ||
typedef struct { | ||
int tw, th; /* tty width and height */ | ||
int w, h; /* window width and height */ | ||
+ int hborderpx, vborderpx; | ||
int ch; /* char height */ | ||
int cw; /* char width */ | ||
int mode; /* window state/mode flags */ | ||
@@ -331,7 +332,7 @@ ttysend(const Arg *arg) | ||
int | ||
evcol(XEvent *e) | ||
{ | ||
- int x = e->xbutton.x - borderpx; | ||
+ int x = e->xbutton.x - win.hborderpx; | ||
LIMIT(x, 0, win.tw - 1); | ||
return x / win.cw; | ||
} | ||
@@ -339,7 +340,7 @@ evcol(XEvent *e) | ||
int | ||
evrow(XEvent *e) | ||
{ | ||
- int y = e->xbutton.y - borderpx; | ||
+ int y = e->xbutton.y - win.vborderpx; | ||
LIMIT(y, 0, win.th - 1); | ||
return y / win.ch; | ||
} | ||
@@ -721,6 +722,9 @@ cresize(int width, int height) | ||
col = MAX(1, col); | ||
row = MAX(1, row); | ||
|
||
+ win.hborderpx = (win.w - col * win.cw) / 2; | ||
+ win.vborderpx = (win.h - row * win.ch) / 2; | ||
+ | ||
tresize(col, row); | ||
xresize(col, row); | ||
ttyresize(win.tw, win.th); | ||
@@ -1121,8 +1125,8 @@ xinit(int cols, int rows) | ||
xloadcols(); | ||
|
||
/* adjust fixed window geometry */ | ||
- win.w = 2 * borderpx + cols * win.cw; | ||
- win.h = 2 * borderpx + rows * win.ch; | ||
+ win.w = 2 * win.hborderpx + cols * win.cw; | ||
+ win.h = 2 * win.vborderpx + rows * win.ch; | ||
if (xw.gm & XNegative) | ||
xw.l += DisplayWidth(xw.dpy, xw.scr) - win.w - 2; | ||
if (xw.gm & YNegative) | ||
@@ -1210,7 +1214,7 @@ xinit(int cols, int rows) | ||
int | ||
xmakeglyphfontspecs(XftGlyphFontSpec *specs, const Glyph *glyphs, int len, int x, int y) | ||
{ | ||
- float winx = borderpx + x * win.cw, winy = borderpx + y * win.ch, xp, yp; | ||
+ float winx = win.hborderpx + x * win.cw, winy = win.vborderpx + y * win.ch, xp, yp; | ||
ushort mode, prevmode = USHRT_MAX; | ||
Font *font = &dc.font; | ||
int frcflags = FRC_NORMAL; | ||
@@ -1343,7 +1347,7 @@ void | ||
xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, int y) | ||
{ | ||
int charlen = len * ((base.mode & ATTR_WIDE) ? 2 : 1); | ||
- int winx = borderpx + x * win.cw, winy = borderpx + y * win.ch, | ||
+ int winx = win.hborderpx + x * win.cw, winy = win.vborderpx + y * win.ch, | ||
width = charlen * win.cw; | ||
Color *fg, *bg, *temp, revfg, revbg, truefg, truebg; | ||
XRenderColor colfg, colbg; | ||
@@ -1433,17 +1437,17 @@ xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, i | ||
|
||
/* Intelligent cleaning up of the borders. */ | ||
if (x == 0) { | ||
- xclear(0, (y == 0)? 0 : winy, borderpx, | ||
+ xclear(0, (y == 0)? 0 : winy, win.vborderpx, | ||
winy + win.ch + | ||
- ((winy + win.ch >= borderpx + win.th)? win.h : 0)); | ||
+ ((winy + win.ch >= win.vborderpx + win.th)? win.h : 0)); | ||
} | ||
- if (winx + width >= borderpx + win.tw) { | ||
+ if (winx + width >= win.hborderpx + win.tw) { | ||
xclear(winx + width, (y == 0)? 0 : winy, win.w, | ||
- ((winy + win.ch >= borderpx + win.th)? win.h : (winy + win.ch))); | ||
+ ((winy + win.ch >= win.vborderpx + win.th)? win.h : (winy + win.ch))); | ||
} | ||
if (y == 0) | ||
- xclear(winx, 0, winx + width, borderpx); | ||
- if (winy + win.ch >= borderpx + win.th) | ||
+ xclear(winx, 0, winx + width, win.hborderpx); | ||
+ if (winy + win.ch >= win.vborderpx + win.th) | ||
xclear(winx, winy + win.ch, winx + width, win.h); | ||
|
||
/* Clean up the region we want to draw to. */ | ||
@@ -1537,35 +1541,35 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og) | ||
case 3: /* Blinking Underline */ | ||
case 4: /* Steady Underline */ | ||
XftDrawRect(xw.draw, &drawcol, | ||
- borderpx + cx * win.cw, | ||
- borderpx + (cy + 1) * win.ch - \ | ||
+ win.hborderpx + cx * win.cw, | ||
+ win.vborderpx + (cy + 1) * win.ch - \ | ||
cursorthickness, | ||
win.cw, cursorthickness); | ||
break; | ||
case 5: /* Blinking bar */ | ||
case 6: /* Steady bar */ | ||
XftDrawRect(xw.draw, &drawcol, | ||
- borderpx + cx * win.cw, | ||
- borderpx + cy * win.ch, | ||
+ win.hborderpx + cx * win.cw, | ||
+ win.vborderpx + cy * win.ch, | ||
cursorthickness, win.ch); | ||
break; | ||
} | ||
} else { | ||
XftDrawRect(xw.draw, &drawcol, | ||
- borderpx + cx * win.cw, | ||
- borderpx + cy * win.ch, | ||
+ win.hborderpx + cx * win.cw, | ||
+ win.vborderpx + cy * win.ch, | ||
win.cw - 1, 1); | ||
XftDrawRect(xw.draw, &drawcol, | ||
- borderpx + cx * win.cw, | ||
- borderpx + cy * win.ch, | ||
+ win.hborderpx + cx * win.cw, | ||
+ win.vborderpx + cy * win.ch, | ||
1, win.ch - 1); | ||
XftDrawRect(xw.draw, &drawcol, | ||
- borderpx + (cx + 1) * win.cw - 1, | ||
- borderpx + cy * win.ch, | ||
+ win.hborderpx + (cx + 1) * win.cw - 1, | ||
+ win.vborderpx + cy * win.ch, | ||
1, win.ch - 1); | ||
XftDrawRect(xw.draw, &drawcol, | ||
- borderpx + cx * win.cw, | ||
- borderpx + (cy + 1) * win.ch - 1, | ||
+ win.hborderpx + cx * win.cw, | ||
+ win.vborderpx + (cy + 1) * win.ch - 1, | ||
win.cw, 1); | ||
} | ||
} | ||
-- | ||
2.28.0 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters