diff options
author | Thomas Tuegel <ttuegel@gmail.com> | 2014-02-03 07:30:29 -0600 |
---|---|---|
committer | Rok Garbas <rok@garbas.si> | 2014-02-05 21:19:57 +0000 |
commit | 4424edccf402537aa6789eb27244e61aea8d13bb (patch) | |
tree | 64e23571c1d6800f159a52127cdd64fbfdc7b362 /pkgs/applications/misc/rxvt_unicode/rxvt-unicode-9.06-font-width.patch | |
parent | edb9e50ef9ee4f671a65b515abe3c899a20c39ae (diff) | |
download | nixlib-4424edccf402537aa6789eb27244e61aea8d13bb.tar nixlib-4424edccf402537aa6789eb27244e61aea8d13bb.tar.gz nixlib-4424edccf402537aa6789eb27244e61aea8d13bb.tar.bz2 nixlib-4424edccf402537aa6789eb27244e61aea8d13bb.tar.lz nixlib-4424edccf402537aa6789eb27244e61aea8d13bb.tar.xz nixlib-4424edccf402537aa6789eb27244e61aea8d13bb.tar.zst nixlib-4424edccf402537aa6789eb27244e61aea8d13bb.zip |
rxvt-unicode: calculate font width correctly
It is (fairly) well known among rxvt-unicode users that its method of calculating the width of Xft fonts is not correct. This is the Gentoo version of the patch which corrects the problem.
Diffstat (limited to 'pkgs/applications/misc/rxvt_unicode/rxvt-unicode-9.06-font-width.patch')
-rw-r--r-- | pkgs/applications/misc/rxvt_unicode/rxvt-unicode-9.06-font-width.patch | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/pkgs/applications/misc/rxvt_unicode/rxvt-unicode-9.06-font-width.patch b/pkgs/applications/misc/rxvt_unicode/rxvt-unicode-9.06-font-width.patch new file mode 100644 index 000000000000..636083218fa5 --- /dev/null +++ b/pkgs/applications/misc/rxvt_unicode/rxvt-unicode-9.06-font-width.patch @@ -0,0 +1,21 @@ +--- a/src/rxvtfont.C 2008-07-09 12:21:45.000000000 +0400 ++++ b/src/rxvtfont.C 2009-10-30 14:32:53.000000000 +0300 +@@ -1195,12 +1195,14 @@ + XGlyphInfo g; + XftTextExtents16 (disp, f, &ch, 1, &g); + +- g.width -= g.x; +- ++/* ++ * bukind: don't use g.width as a width of a character! ++ * instead use g.xOff, see e.g.: http://keithp.com/~keithp/render/Xft.tutorial ++ */ + int wcw = WCWIDTH (ch); +- if (wcw > 0) g.width = (g.width + wcw - 1) / wcw; ++ if (wcw > 1) g.xOff = g.xOff / wcw; ++ if (width < g.xOff) width = g.xOff; + +- 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; + } \ No newline at end of file |