about summary refs log tree commit diff
path: root/pkgs/applications/misc/rxvt_unicode
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@gmail.com>2014-02-03 07:30:29 -0600
committerRok Garbas <rok@garbas.si>2014-02-05 21:19:57 +0000
commit4424edccf402537aa6789eb27244e61aea8d13bb (patch)
tree64e23571c1d6800f159a52127cdd64fbfdc7b362 /pkgs/applications/misc/rxvt_unicode
parentedb9e50ef9ee4f671a65b515abe3c899a20c39ae (diff)
downloadnixlib-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')
-rw-r--r--pkgs/applications/misc/rxvt_unicode/default.nix2
-rw-r--r--pkgs/applications/misc/rxvt_unicode/rxvt-unicode-9.06-font-width.patch21
2 files changed, 23 insertions, 0 deletions
diff --git a/pkgs/applications/misc/rxvt_unicode/default.nix b/pkgs/applications/misc/rxvt_unicode/default.nix
index e5d0ae95f996..2e3ef9f0d10e 100644
--- a/pkgs/applications/misc/rxvt_unicode/default.nix
+++ b/pkgs/applications/misc/rxvt_unicode/default.nix
@@ -24,6 +24,8 @@ stdenv.mkDerivation (rec {
 
   outputs = [ "out" "terminfo" ];
 
+  patches = [ ./rxvt-unicode-9.06-font-width.patch ];
+
   preConfigure =
     ''
       mkdir -p $terminfo/share/terminfo
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