tFixing the redrawing patch of k0ga, so it's using xclear() in redraw() too. - … | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit e4bf2679c1bbbd4d4a8bfdf9c1a143b59ce5888c | |
parent 4876d6e05b6c1b17b0c366f15ae72ae48f045068 | |
Author: Christoph Lohmann <[email protected]> | |
Date: Mon, 17 Sep 2012 22:44:27 +0200 | |
Fixing the redrawing patch of k0ga, so it's using xclear() in redraw() too. | |
Diffstat: | |
M st.c | 16 +++++++++------- | |
1 file changed, 9 insertions(+), 7 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -198,6 +198,7 @@ typedef struct { | |
int scr; | |
Bool isfixed; /* is fixed geometry? */ | |
int fx, fy, fw, fh; /* fixed geometry */ | |
+ int tw, th; /* tty width and height */ | |
int w; /* window width */ | |
int h; /* window height */ | |
int ch; /* char height */ | |
t@@ -894,8 +895,8 @@ ttyresize(int x, int y) { | |
w.ws_row = term.row; | |
w.ws_col = term.col; | |
- w.ws_xpixel = xw.w; | |
- w.ws_ypixel = xw.h; | |
+ w.ws_xpixel = xw.tw; | |
+ w.ws_ypixel = xw.th; | |
if(ioctl(cmdfd, TIOCSWINSZ, &w) < 0) | |
fprintf(stderr, "Couldn't set window size: %s\n", SERRNO); | |
} | |
t@@ -1837,11 +1838,8 @@ tresize(int col, int row) { | |
void | |
xresize(int col, int row) { | |
- xw.w = MAX(1, 2*BORDER + col * xw.cw); | |
- xw.h = MAX(1, 2*BORDER + row * xw.ch); | |
- XFillRectangle(xw.dpy, xw.buf, dc.gc, 0, 0, | |
- DisplayWidth(xw.dpy, xw.scr), | |
- DisplayHeight(xw.dpy, xw.scr)); | |
+ xw.tw = MAX(1, 2*BORDER + col * xw.cw); | |
+ xw.th = MAX(1, 2*BORDER + row * xw.ch); | |
} | |
void | |
t@@ -2145,6 +2143,8 @@ xresettitle(void) { | |
void | |
redraw(void) { | |
struct timespec tv = {0, REDRAW_TIMEOUT * 1000}; | |
+ | |
+ xclear(0, 0, xw.w, xw.h); | |
tfulldirt(); | |
draw(); | |
XSync(xw.dpy, False); /* necessary for a good tput flash */ | |
t@@ -2334,6 +2334,8 @@ resize(XEvent *e) { | |
row = (xw.h - 2*BORDER) / xw.ch; | |
if(col == term.col && row == term.row) | |
return; | |
+ | |
+ xclear(0, 0, xw.w, xw.h); | |
tresize(col, row); | |
xresize(col, row); | |
ttyresize(col, row); |