aboutsummaryrefslogtreecommitdiff
path: root/st.c
diff options
context:
space:
mode:
authorDevin J. Pohly <djpohly@djpohly.com>2010-10-25 15:26:47 -0400
committerDevin J. Pohly <djpohly@djpohly.com>2010-10-25 15:26:47 -0400
commitd85f7319a2c0d0bc53c1e0be6539284823fe7389 (patch)
tree241a62ec279b335c98d18daa834d4a788beaae82 /st.c
parent12435817723b44189bd412937403c401e5bbc136 (diff)
downloadst-d85f7319a2c0d0bc53c1e0be6539284823fe7389.tar.gz
st-d85f7319a2c0d0bc53c1e0be6539284823fe7389.zip
copy old pixmap to new on resize
Diffstat (limited to 'st.c')
-rw-r--r--st.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/st.c b/st.c
index 594b0d3..734ad0a 100644
--- a/st.c
+++ b/st.c
@@ -1260,10 +1260,24 @@ tresize(int col, int row) {
1260 1260
1261void 1261void
1262xresize(int col, int row) { 1262xresize(int col, int row) {
1263 Pixmap newbuf;
1264 int oldw, oldh;
1265
1266 oldw = xw.bufw;
1267 oldh = xw.bufh;
1263 xw.bufw = MAX(1, col * xw.cw); 1268 xw.bufw = MAX(1, col * xw.cw);
1264 xw.bufh = MAX(1, row * xw.ch); 1269 xw.bufh = MAX(1, row * xw.ch);
1270 newbuf = XCreatePixmap(xw.dis, xw.win, xw.bufw, xw.bufh, XDefaultDepth(xw.dis, xw.scr));
1271 XCopyArea(xw.dis, xw.buf, newbuf, dc.gc, 0, 0, xw.bufw, xw.bufh, 0, 0);
1265 XFreePixmap(xw.dis, xw.buf); 1272 XFreePixmap(xw.dis, xw.buf);
1266 xw.buf = XCreatePixmap(xw.dis, xw.win, xw.bufw, xw.bufh, XDefaultDepth(xw.dis, xw.scr)); 1273 XSetForeground(xw.dis, dc.gc, dc.col[DefaultBG]);
1274 if(xw.bufw > oldw)
1275 XFillRectangle(xw.dis, newbuf, dc.gc, oldw, 0,
1276 xw.bufw-oldw, MIN(xw.bufh, oldh));
1277 if(xw.bufh > oldh)
1278 XFillRectangle(xw.dis, newbuf, dc.gc, 0, oldh,
1279 xw.bufw, xw.bufh-oldh);
1280 xw.buf = newbuf;
1267} 1281}
1268 1282
1269void 1283void