From 7d3e758bf530501257f86ba73384c4e98ac48389 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Tue, 16 Jan 2007 10:11:24 +0000 Subject: Update centered_baseline in presence of gravity attributes. 2007-01-16 Behdad Esfahbod * pango/pango-context.c (itemize_state_init), (itemize_state_update_for_new_run): Update centered_baseline in presence of gravity attributes. svn path=/trunk/; revision=2147 --- ChangeLog | 6 ++++++ pango/pango-context.c | 24 +++++++++++------------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 80d4aaae..f6b477ed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-01-16 Behdad Esfahbod + + * pango/pango-context.c (itemize_state_init), + (itemize_state_update_for_new_run): Update centered_baseline in + presence of gravity attributes. + 2007-01-16 Behdad Esfahbod * examples/cairotwisted.c (draw_text): diff --git a/pango/pango-context.c b/pango/pango-context.c index 53b86302..cbde4efd 100644 --- a/pango/pango-context.c +++ b/pango/pango-context.c @@ -849,15 +849,13 @@ itemize_state_init (ItemizeState *state, update_end (state); - state->centered_baseline = state->context->resolved_gravity == PANGO_GRAVITY_EAST - || state->context->resolved_gravity == PANGO_GRAVITY_WEST; - if (pango_font_description_get_set_fields (state->font_desc) & PANGO_FONT_MASK_GRAVITY) state->font_desc_gravity = pango_font_description_get_gravity (state->font_desc); else state->font_desc_gravity = PANGO_GRAVITY_AUTO; state->gravity = PANGO_GRAVITY_AUTO; + state->centered_baseline = FALSE; state->gravity_hint = state->context->gravity_hint; state->resolved_gravity = PANGO_GRAVITY_AUTO; state->derived_lang = NULL; @@ -1220,22 +1218,22 @@ itemize_state_update_for_new_run (ItemizeState *state) PangoGravity old_gravity = state->resolved_gravity; if (state->font_desc_gravity != PANGO_GRAVITY_AUTO) - state->resolved_gravity = state->font_desc_gravity; + { + state->resolved_gravity = state->font_desc_gravity; + state->centered_baseline = PANGO_GRAVITY_IS_VERTICAL (state->resolved_gravity); + } else { - PangoGravity gravity; - PangoGravityHint gravity_hint; + PangoGravity gravity = state->gravity; + PangoGravityHint gravity_hint = state->gravity_hint; - gravity = state->gravity; if (G_LIKELY (gravity == PANGO_GRAVITY_AUTO)) gravity = state->context->resolved_gravity; - gravity_hint = state->gravity_hint; - - gravity = pango_gravity_get_for_script (state->script, - gravity, - gravity_hint); - state->resolved_gravity = gravity; + state->centered_baseline = PANGO_GRAVITY_IS_VERTICAL (gravity); + state->resolved_gravity = pango_gravity_get_for_script (state->script, + gravity, + gravity_hint); } if (old_gravity != state->resolved_gravity) -- cgit v1.2.1