[ft] Fix extents with negative scales

Fixes https://github.com/behdad/harfbuzz/issues/162
diff --git a/src/hb-ft.cc b/src/hb-ft.cc
index 5630964..9b872ea 100644
--- a/src/hb-ft.cc
+++ b/src/hb-ft.cc
@@ -277,6 +277,16 @@
   extents->y_bearing = ft_face->glyph->metrics.horiBearingY;
   extents->width = ft_face->glyph->metrics.width;
   extents->height = -ft_face->glyph->metrics.height;
+  if (font->x_scale < 0)
+  {
+    extents->x_bearing = -extents->x_bearing;
+    extents->width = -extents->width;
+  }
+  if (font->y_scale < 0)
+  {
+    extents->y_bearing = -extents->y_bearing;
+    extents->height = -extents->height;
+  }
   return true;
 }