emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r109876: Fix display of Arabic diacri


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r109876: Fix display of Arabic diacriticals on Windows, per bug #11860.
Date: Tue, 04 Sep 2012 20:15:45 +0300
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 109876
fixes bug: http://debbugs.gnu.org/11860
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Tue 2012-09-04 20:15:45 +0300
message:
  Fix display of Arabic diacriticals on Windows, per bug #11860.
  
   src/w32uniscribe.c (uniscribe_shape): Reverse the sign of
   offsets[j].dv, since the y axis of the screen coordinates points
   down, while the y axis of the font definition coordinates points
   up.  This fixes display of Arabic diacritics such as KASRA and
   KASRATAN.
modified:
  src/ChangeLog
  src/w32uniscribe.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-09-04 06:34:19 +0000
+++ b/src/ChangeLog     2012-09-04 17:15:45 +0000
@@ -1,3 +1,11 @@
+2012-09-04  Eli Zaretskii  <address@hidden>
+
+       * w32uniscribe.c (uniscribe_shape): Reverse the sign of
+       offsets[j].dv, since the y axis of the screen coordinates points
+       down, while the y axis of the font definition coordinates points
+       up.  This fixes display of Arabic diacritics such as KASRA and
+       KASRATAN.  (Bug#11860)
+
 2012-09-04  Paul Eggert  <address@hidden>
 
        Be more systematic about _setjmp vs setjmp.

=== modified file 'src/w32uniscribe.c'
--- a/src/w32uniscribe.c        2012-09-01 13:54:27 +0000
+++ b/src/w32uniscribe.c        2012-09-04 17:15:45 +0000
@@ -454,7 +454,11 @@
                        }
                      else
                        ASET (vec, 0, make_number (offsets[j].du + adj_offset));
-                     ASET (vec, 1, make_number (offsets[j].dv));
+                     /* In the font definition coordinate system, the
+                        Y coordinate points up, while in our screen
+                        coordinates Y grows downwards.  So we need to
+                        reverse the sign of Y-OFFSET here.  */
+                     ASET (vec, 1, make_number (-offsets[j].dv));
                      /* Based on what ftfont.c does... */
                      ASET (vec, 2, make_number (advances[j]));
                      LGLYPH_SET_ADJUSTMENT (lglyph, vec);


reply via email to

[Prev in Thread] Current Thread [Next in Thread]