Removing the overdrawing of some fonts.
parent
7ea6863208
commit
db6f796ecf
11
st.c
11
st.c
|
@ -36,6 +36,7 @@ char *argv0;
|
|||
#define Draw XftDraw *
|
||||
#define Colour XftColor
|
||||
#define Colourmap Colormap
|
||||
#define Rectangle XRectangle
|
||||
|
||||
#if defined(__linux)
|
||||
#include <pty.h>
|
||||
|
@ -2764,6 +2765,7 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
|
|||
FcCharSet *fccharset;
|
||||
Colour *fg, *bg, *temp, revfg, revbg;
|
||||
XRenderColor colfg, colbg;
|
||||
Rectangle r;
|
||||
|
||||
frcflags = FRC_NORMAL;
|
||||
|
||||
|
@ -2851,6 +2853,11 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
|
|||
|
||||
/* 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 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
|
|||
(FcChar8 *)u8fs,
|
||||
u8fblen);
|
||||
xp += font->width * u8fl;
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -2969,6 +2977,9 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
|
|||
XftDrawRect(xw.draw, fg, winx, winy + font->ascent + 1,
|
||||
width, 1);
|
||||
}
|
||||
|
||||
/* Reset clip to none. */
|
||||
XftDrawSetClip(xw.draw, 0);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in New Issue