tcopy old pixmap to new on resize - st - [fork] customized build of st, the sim… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit d85f7319a2c0d0bc53c1e0be6539284823fe7389 | |
parent 12435817723b44189bd412937403c401e5bbc136 | |
Author: Devin J. Pohly <[email protected]> | |
Date: Mon, 25 Oct 2010 15:26:47 -0400 | |
copy old pixmap to new on resize | |
Diffstat: | |
M st.c | 16 +++++++++++++++- | |
1 file changed, 15 insertions(+), 1 deletion(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -1260,10 +1260,24 @@ tresize(int col, int row) { | |
void | |
xresize(int col, int row) { | |
+ Pixmap newbuf; | |
+ int oldw, oldh; | |
+ | |
+ oldw = xw.bufw; | |
+ oldh = xw.bufh; | |
xw.bufw = MAX(1, col * xw.cw); | |
xw.bufh = MAX(1, row * xw.ch); | |
+ newbuf = XCreatePixmap(xw.dis, xw.win, xw.bufw, xw.bufh, XDefaultDepth… | |
+ XCopyArea(xw.dis, xw.buf, newbuf, dc.gc, 0, 0, xw.bufw, xw.bufh, 0, 0); | |
XFreePixmap(xw.dis, xw.buf); | |
- xw.buf = XCreatePixmap(xw.dis, xw.win, xw.bufw, xw.bufh, XDefaultDepth… | |
+ XSetForeground(xw.dis, dc.gc, dc.col[DefaultBG]); | |
+ if(xw.bufw > oldw) | |
+ XFillRectangle(xw.dis, newbuf, dc.gc, oldw, 0, | |
+ xw.bufw-oldw, MIN(xw.bufh, oldh)); | |
+ if(xw.bufh > oldh) | |
+ XFillRectangle(xw.dis, newbuf, dc.gc, 0, oldh, | |
+ xw.bufw, xw.bufh-oldh); | |
+ xw.buf = newbuf; | |
} | |
void |