diff options
| author | Devin J. Pohly <djpohly@djpohly.com> | 2010-10-25 15:26:47 -0400 | 
|---|---|---|
| committer | Devin J. Pohly <djpohly@djpohly.com> | 2010-10-25 15:26:47 -0400 | 
| commit | 90a56203a074eb3cd38e988d402b932e42dffd6b (patch) | |
| tree | 241a62ec279b335c98d18daa834d4a788beaae82 | |
| parent | a6790adae71810318bf4b687f0804afb3a01ef12 (diff) | |
| download | st-90a56203a074eb3cd38e988d402b932e42dffd6b.tar.xz st-90a56203a074eb3cd38e988d402b932e42dffd6b.zip | |
copy old pixmap to new on resize
| -rw-r--r-- | st.c | 16 | 
1 files changed, 15 insertions, 1 deletions
| @@ -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(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); -	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 | 
