]> code.delx.au - gnu-emacs/blobdiff - src/w32uniscribe.c
Fix bug ref
[gnu-emacs] / src / w32uniscribe.c
index bc45e2c648c9c9ad29ab7e5a0d391c48f325b581..5d160b9d42f22dad437e8010a485c4d37370784c 100644 (file)
@@ -27,7 +27,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #define _WIN32_WINNT 0x500
 #include <windows.h>
 #include <usp10.h>
-#include <setjmp.h>
 
 #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);