summaryrefslogtreecommitdiff
path: root/pango/pango-context.c
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2009-07-22 16:24:43 -0400
committerBehdad Esfahbod <behdad@behdad.org>2009-07-22 16:24:43 -0400
commitac2ce962e9c257657eeceaf08d6aeeddd6faaa83 (patch)
tree16daaf469efe888429edd462499cb46ea4d7838c /pango/pango-context.c
parent0df5c40d43a8d87a917991780595d9fadd19afb6 (diff)
downloadpango-ac2ce962e9c257657eeceaf08d6aeeddd6faaa83.tar.gz
Bug 410169 – gravity problem with Common chars
Only show wide chars (as in g_unichar_iswide()) upright. This improves rendering of 1) digits in CJK context, and 2) Narrow Hangul characters. New public API: pango_gravity_get_for_script_and_width()
Diffstat (limited to 'pango/pango-context.c')
-rw-r--r--pango/pango-context.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/pango/pango-context.c b/pango/pango-context.c
index 40579686..6ec0b56f 100644
--- a/pango/pango-context.c
+++ b/pango/pango-context.c
@@ -1293,15 +1293,11 @@ itemize_state_update_for_new_run (ItemizeState *state)
{
PangoGravity old_gravity = state->resolved_gravity;
+ /* Font-desc gravity overrides everything */
if (state->font_desc_gravity != PANGO_GRAVITY_AUTO)
{
state->resolved_gravity = state->font_desc_gravity;
}
- else if (state->width_iter.wide)
- {
- /* Wide characters are always upright */
- state->resolved_gravity = state->context->resolved_gravity;
- }
else
{
PangoGravity gravity = state->gravity;
@@ -1310,9 +1306,10 @@ itemize_state_update_for_new_run (ItemizeState *state)
if (G_LIKELY (gravity == PANGO_GRAVITY_AUTO))
gravity = state->context->resolved_gravity;
- state->resolved_gravity = pango_gravity_get_for_script (state->script,
- gravity,
- gravity_hint);
+ state->resolved_gravity = pango_gravity_get_for_script_and_width (state->script,
+ state->width_iter.wide,
+ gravity,
+ gravity_hint);
}
if (old_gravity != state->resolved_gravity)