aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2012-09-04 20:15:45 +0300
committerEli Zaretskii2012-09-04 20:15:45 +0300
commit30934d334e8a67c8992d910428758d5b93e0f04f (patch)
tree41c2a2c83cd551690bd7725d1737c90ecc18f4ba
parent8ce192e317f321834851e31571833f33aa332aa2 (diff)
downloademacs-30934d334e8a67c8992d910428758d5b93e0f04f.tar.gz
emacs-30934d334e8a67c8992d910428758d5b93e0f04f.zip
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.
-rw-r--r--src/ChangeLog8
-rw-r--r--src/w32uniscribe.c6
2 files changed, 13 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index a8d6a4026a0..f905cc3b5a2 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,11 @@
12012-09-04 Eli Zaretskii <eliz@gnu.org>
2
3 * w32uniscribe.c (uniscribe_shape): Reverse the sign of
4 offsets[j].dv, since the y axis of the screen coordinates points
5 down, while the y axis of the font definition coordinates points
6 up. This fixes display of Arabic diacritics such as KASRA and
7 KASRATAN. (Bug#11860)
8
12012-09-04 Paul Eggert <eggert@cs.ucla.edu> 92012-09-04 Paul Eggert <eggert@cs.ucla.edu>
2 10
3 Be more systematic about _setjmp vs setjmp. 11 Be more systematic about _setjmp vs setjmp.
diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c
index bc45e2c648c..cf99d14dc77 100644
--- a/src/w32uniscribe.c
+++ b/src/w32uniscribe.c
@@ -454,7 +454,11 @@ uniscribe_shape (Lisp_Object lgstring)
454 } 454 }
455 else 455 else
456 ASET (vec, 0, make_number (offsets[j].du + adj_offset)); 456 ASET (vec, 0, make_number (offsets[j].du + adj_offset));
457 ASET (vec, 1, make_number (offsets[j].dv)); 457 /* In the font definition coordinate system, the
458 Y coordinate points up, while in our screen
459 coordinates Y grows downwards. So we need to
460 reverse the sign of Y-OFFSET here. */
461 ASET (vec, 1, make_number (-offsets[j].dv));
458 /* Based on what ftfont.c does... */ 462 /* Based on what ftfont.c does... */
459 ASET (vec, 2, make_number (advances[j])); 463 ASET (vec, 2, make_number (advances[j]));
460 LGLYPH_SET_ADJUSTMENT (lglyph, vec); 464 LGLYPH_SET_ADJUSTMENT (lglyph, vec);