Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --- src/rxvtfont.C.orig 2011-07-20 22:19:29.878012201 -0300
- +++ src/rxvtfont.C 2011-07-20 22:19:33.634671723 -0300
- @@ -1237,11 +1237,22 @@
- FT_Face face = XftLockFace (f);
- +/*
- + * use ascent, descent and height from XftFont *f instead of FT_Face face.
- + * this somehow reproduces the behaviour of the line height as seen on xterm.
- +
- ascent = (face->size->metrics.ascender + 63) >> 6;
- descent = (-face->size->metrics.descender + 63) >> 6;
- height = max (ascent + descent, (face->size->metrics.height + 63) >> 6);
- width = 0;
- + */
- +
- + ascent = f->ascent;
- + descent = f->descent;
- + height = max (ascent + descent, f->height);
- + width = 0;
- +
- bool scalable = face->face_flags & FT_FACE_FLAG_SCALABLE;
- XftUnlockFace (f);
- @@ -1265,6 +1276,11 @@
- XGlyphInfo g;
- XftTextExtents16 (disp, f, &ch, 1, &g);
- +/*
- + * don't use g.width/g.height as width/height of a character!
- + * instead use g.xOff/g.yOff.
- + * see e.g.: http://keithp.com/~keithp/render/Xft.tutorial
- +
- g.width -= g.x;
- int wcw = WCWIDTH (ch);
- @@ -1273,6 +1289,15 @@
- if (width < g.width ) width = g.width;
- if (height < g.height ) height = g.height;
- if (glheight < g.height - g.y) glheight = g.height - g.y;
- +
- + */
- +
- + int wcw = WCWIDTH (ch);
- + if (wcw > 1) g.xOff = g.xOff / wcw;
- +
- + if (width < g.xOff ) width = g.xOff;
- + if (height < g.yOff ) height = g.yOff;
- + if (glheight < g.yOff - g.y) glheight = g.yOff - g.y;
- }
- if (!width)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement