Xinqi Bao's Git
projects
/
st.git
/ diff
summary
|
log
|
commit
|
diff
|
tree
raw
|
patch
|
inline
| side by side (parent:
1243581
)
copy old pixmap to new on resize
author
Devin J. Pohly <
[email protected]
>
Mon, 25 Oct 2010 19:26:47 +0000
(15:26 -0400)
committer
Devin J. Pohly <
[email protected]
>
Mon, 25 Oct 2010 19:26:47 +0000
(15:26 -0400)
st.c
diff
|
blob
|
history
diff --git
a/st.c
b/st.c
index
594b0d3
..
734ad0a
100644
(file)
--- a/
st.c
+++ b/
st.c
@@
-1260,10
+1260,24
@@
tresize(int col, int row) {
void
xresize(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);
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(xw.dis, xw.scr));
+ XCopyArea(xw.dis, xw.buf, newbuf, dc.gc, 0, 0, xw.bufw, xw.bufh, 0, 0);
XFreePixmap(xw.dis, xw.buf);
XFreePixmap(xw.dis, xw.buf);
- xw.buf = XCreatePixmap(xw.dis, xw.win, xw.bufw, xw.bufh, XDefaultDepth(xw.dis, xw.scr));
+ 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
}
void