get rid of artifacts in border on resize down
authorDevin J. Pohly <djpohly@djpohly.com>
Mon, 25 Oct 2010 20:00:10 +0000 (16:00 -0400)
committerDevin J. Pohly <djpohly@djpohly.com>
Mon, 25 Oct 2010 20:00:10 +0000 (16:00 -0400)
st.c

diff --git a/st.c b/st.c
index 734ad0a..1089087 100644 (file)
--- a/st.c
+++ b/st.c
@@ -1274,9 +1274,17 @@ xresize(int col, int row) {
        if(xw.bufw > oldw)
                XFillRectangle(xw.dis, newbuf, dc.gc, oldw, 0,
                                xw.bufw-oldw, MIN(xw.bufh, oldh));
+       else if(xw.bufw < oldw && (BORDER > 0 || xw.w > xw.bufw))
+               XClearArea(xw.dis, xw.win, BORDER+xw.bufw, BORDER,
+                               xw.w-xw.bufh-BORDER, BORDER+MIN(xw.bufh, oldh),
+                               False);
        if(xw.bufh > oldh)
                XFillRectangle(xw.dis, newbuf, dc.gc, 0, oldh,
                                xw.bufw, xw.bufh-oldh);
+       else if(xw.bufh < oldh && (BORDER > 0 || xw.h > xw.bufh))
+               XClearArea(xw.dis, xw.win, BORDER, BORDER+xw.bufh,
+                               xw.w-2*BORDER, xw.h-xw.bufh-BORDER,
+                               False);
        xw.buf = newbuf;
 }