diff options
| -rw-r--r-- | src/ChangeLog | 8 | ||||
| -rw-r--r-- | src/w32uniscribe.c | 6 |
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 @@ | |||
| 1 | 2012-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 | |||
| 1 | 2012-09-04 Paul Eggert <eggert@cs.ucla.edu> | 9 | 2012-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); |