Update centered_baseline in presence of gravity attributes.
authorBehdad Esfahbod <behdad@gnome.org>
Tue, 16 Jan 2007 10:11:24 +0000 (10:11 +0000)
committerBehdad Esfahbod <behdad@src.gnome.org>
Tue, 16 Jan 2007 10:11:24 +0000 (10:11 +0000)
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.

svn path=/trunk/; revision=2147

ChangeLog
pango/pango-context.c

index 80d4aaa..f6b477e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 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):
index 53b8630..cbde4ef 100644 (file)
@@ -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)