Add ST anysize patch

This commit is contained in:
2024-06-03 14:25:58 +01:00
parent 30a380646e
commit 4d679187fc
6 changed files with 168 additions and 301 deletions

View File

@@ -45,11 +45,6 @@ typedef struct {
signed char appcursor; /* application cursor */
} Key;
typedef enum {
PixelGeometry,
CellGeometry
} Geometry;
/* X modifiers */
#define XK_ANY_MOD UINT_MAX
#define XK_NO_MOD 0
@@ -1132,7 +1127,7 @@ xicdestroy(XIC xim, XPointer client, XPointer call)
}
void
xinit(int w, int h)
xinit(int cols, int rows)
{
XGCValues gcvalues;
Cursor cursor;
@@ -1157,16 +1152,8 @@ xinit(int w, int h)
xloadcols();
/* adjust fixed window geometry */
switch (geometry) {
case CellGeometry:
win.w = 2 * borderpx + w * win.cw;
win.h = 2 * borderpx + h * win.ch;
break;
case PixelGeometry:
win.w = w;
win.h = h;
break;
}
win.w = 2 * borderpx + cols * win.cw;
win.h = 2 * borderpx + rows * win.ch;
if (xw.gm & XNegative)
xw.l += DisplayWidth(xw.dpy, xw.scr) - win.w - 2;
if (xw.gm & YNegative)
@@ -2081,12 +2068,6 @@ main(int argc, char *argv[])
case 'g':
xw.gm = XParseGeometry(EARGF(usage()),
&xw.l, &xw.t, &cols, &rows);
geometry = CellGeometry;
break;
case 'G':
xw.gm = XParseGeometry(EARGF(usage()),
&xw.l, &xw.t, &width, &height);
geometry = PixelGeometry;
break;
case 'i':
xw.isfixed = 1;
@@ -2123,19 +2104,10 @@ run:
setlocale(LC_CTYPE, "");
XSetLocaleModifiers("");
switch (geometry) {
case CellGeometry:
xinit(cols, rows);
break;
case PixelGeometry:
xinit(width, height);
cols = (win.w - 2 * borderpx) / win.cw;
rows = (win.h - 2 * borderpx) / win.ch;
break;
}
cols = MAX(cols, 1);
rows = MAX(rows, 1);
tnew(cols, rows);
xinit(cols, rows);
xsetenv();
selinit();
run();