X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/7e510e2844732d53563abd45ec60df7de2129246..fb39b937b0628f4592b07d0aa61a41cf696abd30:/src/w32uniscribe.c
diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c
index bc45e2c648..5d160b9d42 100644
--- a/src/w32uniscribe.c
+++ b/src/w32uniscribe.c
@@ -27,7 +27,6 @@ along with GNU Emacs. If not, see . */
#define _WIN32_WINNT 0x500
#include
#include
-#include
#include "lisp.h"
#include "w32term.h"
@@ -454,7 +453,11 @@ uniscribe_shape (Lisp_Object lgstring)
}
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);