all repos — st @ db6f796ecfafcee879613b60a772be3e5d9e355e

st (suckless terminal) config

Removing the overdrawing of some fonts.
Christoph Lohmann 20h@r-36.net
commit

db6f796ecfafcee879613b60a772be3e5d9e355e

parent

7ea68632081e5adc2f0d2681ac89ed5decfac7b9

1 files changed, 11 insertions(+), 0 deletions(-)

jump to
M st.cst.c

@@ -36,6 +36,7 @@ #define Font Font_

#define Draw XftDraw * #define Colour XftColor #define Colourmap Colormap +#define Rectangle XRectangle #if defined(__linux) #include <pty.h>

@@ -2764,6 +2765,7 @@ FcFontSet *fcsets[] = { NULL };

FcCharSet *fccharset; Colour *fg, *bg, *temp, revfg, revbg; XRenderColor colfg, colbg; + Rectangle r; frcflags = FRC_NORMAL;

@@ -2851,6 +2853,11 @@ xclear(winx, winy + xw.ch, winx + width, xw.h);

/* Clean up the region we want to draw to. */ XftDrawRect(xw.draw, bg, winx, winy, width, xw.ch); + r.x = 0; + r.y = 0; + r.height = xw.ch; + r.width = width; + XftDrawSetClipRectangles(xw.draw, winx, winy, &r, 1); fcsets[0] = font->set; for(xp = winx; bytelen > 0;) {

@@ -2885,6 +2892,7 @@ winy + font->ascent,

(FcChar8 *)u8fs, u8fblen); xp += font->width * u8fl; + } break; }

@@ -2969,6 +2977,9 @@ if(base.mode & ATTR_UNDERLINE) {

XftDrawRect(xw.draw, fg, winx, winy + font->ascent + 1, width, 1); } + + /* Reset clip to none. */ + XftDrawSetClip(xw.draw, 0); } void