2007-01-16 Behdad Esfahbod <behdad@gnome.org>
+ * 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 <behdad@gnome.org>
+
* examples/cairotwisted.c (draw_text):
* pango/pangocairo-win32font.c (max_glyph_width):
* pango/pangofc-font.c (max_glyph_width):
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;
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)