JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
Make Shift+Home equal to CLS in ascii mode
[st.git] / st.c
diff --git a/st.c b/st.c
index 82bfd3d..21afb52 100644 (file)
--- a/st.c
+++ b/st.c
@@ -3083,6 +3083,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
                        base.fg = defaultunderline;
        }
        if(IS_TRUECOL(base.fg)) {
+               colfg.alpha = 0xffff;
                colfg.red = TRUERED(base.fg);
                colfg.green = TRUEGREEN(base.fg);
                colfg.blue = TRUEBLUE(base.fg);
@@ -3093,6 +3094,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
        }
 
        if(IS_TRUECOL(base.bg)) {
+               colbg.alpha = 0xffff;
                colbg.green = TRUEGREEN(base.bg);
                colbg.red = TRUERED(base.bg);
                colbg.blue = TRUEBLUE(base.bg);
@@ -3299,6 +3301,8 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
                XftDrawRect(xw.draw, fg, winx, winy + font->ascent + 1,
                                width, 1);
        }
+       XCopyArea(xw.dpy, xw.buf, xw.win, dc.gc, winx, winy, width,
+                       CEIL((font->ascent + font->descent) * chscale), winx, winy);
 
        /* Reset clip to none. */
        XftDrawSetClip(xw.draw, 0);
@@ -3397,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);