Commit Diff


commit - 9df9a4723dedf4f5e12c954376c4931a6976b918
commit + c0a56ef4be2a0f84360f41b2d45964e7ef297746
blob - 4d543d19627f0e6dfb15b510ca4e8b46360987ee
blob + 48c81a26e04bc6b167515c3793667a76ba210bdc
--- st.c
+++ st.c
@@ -3301,6 +3301,8 @@ xdraws(char *s, Glyph base, int x, int y, int charlen,
 		XftDrawRect(xw.draw, fg, winx, winy + font->ascent + 1,
 				width, 1);
 	}
+	XCopyArea(xw.dpy, xw.buf, xw.win, dc.gc, winx, winy, width,
+			font->ascent + font->descent, winx, winy);
 
 	/* Reset clip to none. */
 	XftDrawSetClip(xw.draw, 0);
@@ -3399,8 +3401,6 @@ redraw(int timeout) {
 void
 draw(void) {
 	drawregion(0, 0, term.col, term.row);
-	XCopyArea(xw.dpy, xw.buf, xw.win, dc.gc, 0, 0, xw.w,
-			xw.h, 0, 0);
 	XSetForeground(xw.dpy, dc.gc,
 			dc.col[IS_SET(MODE_REVERSE)?
 				defaultfg : defaultbg].pixel);