summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2007-12-06 01:41:18 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2007-12-06 01:41:18 +0000
commit6fffea310dc99df9652410345d6b62e991c261eb (patch)
treea3e6d407403049d9d843e621b51fcd3825aaaaa7
parent62d818bf7db628d225479244ed1fc7af5c93a0f2 (diff)
downloadpango-6fffea310dc99df9652410345d6b62e991c261eb.tar.gz
Bug 501938 – Arabic shaping broken with vertical layout with
2007-12-05 Behdad Esfahbod <behdad@gnome.org> Bug 501938 – Arabic shaping broken with vertical layout with vertical-hint=line * modules/arabic/arabic-fc.c (arabic_engine_shape): Take gravity into equation when deciding whether to shape visually or logically. svn path=/trunk/; revision=2516
-rw-r--r--ChangeLog8
-rw-r--r--modules/arabic/arabic-fc.c4
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index e29e182c..65b166c5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2007-12-05 Behdad Esfahbod <behdad@gnome.org>
+ Bug 501938 – Arabic shaping broken with vertical layout with
+ vertical-hint=line
+
+ * modules/arabic/arabic-fc.c (arabic_engine_shape): Take gravity into
+ equation when deciding whether to shape visually or logically.
+
+2007-12-05 Behdad Esfahbod <behdad@gnome.org>
+
* pango-view/viewer-pangocairo.c (render_callback): Fix assertion
in pango_gravity_get_rotation().
diff --git a/modules/arabic/arabic-fc.c b/modules/arabic/arabic-fc.c
index 5765982b..023f6294 100644
--- a/modules/arabic/arabic-fc.c
+++ b/modules/arabic/arabic-fc.c
@@ -96,6 +96,7 @@ arabic_engine_shape (PangoEngineShape *engine,
const char *p;
int cluster = 0;
gboolean rtl = analysis->level % 2 != 0;
+ gboolean reverse;
int i;
g_return_if_fail (font != NULL);
@@ -115,7 +116,8 @@ arabic_engine_shape (PangoEngineShape *engine,
wcs = g_utf8_to_ucs4_fast (text, length, &n_chars);
properties = g_new0 (gulong, n_chars);
- Arabic_Assign_Properties (wcs, properties, n_chars, !rtl);
+ reverse = !rtl ^ (analysis->gravity == PANGO_GRAVITY_NORTH || analysis->gravity == PANGO_GRAVITY_WEST);
+ Arabic_Assign_Properties (wcs, properties, n_chars, reverse);
g_free (wcs);