diff options
Diffstat (limited to 'pango')
-rw-r--r-- | pango/pango-context.c | 2 | ||||
-rw-r--r-- | pango/pango-item.h | 9 | ||||
-rw-r--r-- | pango/pango-layout.c | 4 | ||||
-rw-r--r-- | pango/pango-renderer.c | 4 |
4 files changed, 11 insertions, 8 deletions
diff --git a/pango/pango-context.c b/pango/pango-context.c index 5875fb72..533929d6 100644 --- a/pango/pango-context.c +++ b/pango/pango-context.c @@ -959,7 +959,7 @@ itemize_state_add_character (ItemizeState *state, break; } - state->item->analysis.centered_baseline = state->centered_baseline; + state->item->analysis.flags = state->centered_baseline ? PANGO_ANALYSIS_FLAG_CENTERED_BASELINE : 0; state->item->analysis.language = state->derived_lang; diff --git a/pango/pango-item.h b/pango/pango-item.h index cf9bfe84..cdc887e4 100644 --- a/pango/pango-item.h +++ b/pango/pango-item.h @@ -29,15 +29,18 @@ G_BEGIN_DECLS typedef struct _PangoAnalysis PangoAnalysis; typedef struct _PangoItem PangoItem; +/* TODO: if more flags are needed, turn this into a real PangoAnalysisFlags enum */ +#define PANGO_ANALYSIS_FLAG_CENTERED_BASELINE (1 << 0) + struct _PangoAnalysis { PangoEngineShape *shape_engine; PangoEngineLang *lang_engine; PangoFont *font; - guint level : 8; - guint gravity : 3; /* PangoGravity */ - guint centered_baseline : 1; /* gboolean */ + guint8 level; + guint8 gravity; /* PangoGravity */ + guint8 flags; PangoLanguage *language; GSList *extra_attrs; diff --git a/pango/pango-layout.c b/pango/pango-layout.c index 2ea3a8c6..eab30f8a 100644 --- a/pango/pango-layout.c +++ b/pango/pango-layout.c @@ -4107,7 +4107,7 @@ pango_layout_run_get_extents (PangoLayoutRun *run, pango_layout_get_item_properties (run->item, &properties); - if (!run_logical && run->item->analysis.centered_baseline) + if (!run_logical && (run->item->analysis.flags & PANGO_ANALYSIS_FLAG_CENTERED_BASELINE)) run_logical = &logical; if (!run_logical && (properties.uline != PANGO_UNDERLINE_NONE || properties.strikethrough)) @@ -4180,7 +4180,7 @@ pango_layout_run_get_extents (PangoLayoutRun *run, pango_font_metrics_unref (metrics); } - if (run->item->analysis.centered_baseline) + if (run->item->analysis.flags & PANGO_ANALYSIS_FLAG_CENTERED_BASELINE) properties.rise += run_logical->y + run_logical->height / 2; if (properties.rise != 0) diff --git a/pango/pango-renderer.c b/pango/pango-renderer.c index b4c4728e..5b5b71ba 100644 --- a/pango/pango-renderer.c +++ b/pango/pango-renderer.c @@ -481,7 +481,7 @@ pango_renderer_draw_layout_line (PangoRenderer *renderer, PangoRectangle ink_rect, *ink = NULL; PangoRectangle logical_rect, *logical = NULL; - if (run->item->analysis.centered_baseline) + if (run->item->analysis.flags & PANGO_ANALYSIS_FLAG_CENTERED_BASELINE) logical = &logical_rect; pango_renderer_prepare_run (renderer, run); @@ -515,7 +515,7 @@ pango_renderer_draw_layout_line (PangoRenderer *renderer, state.logical_rect_end = x + x_off + glyph_string_width; - if (run->item->analysis.centered_baseline) + if (run->item->analysis.flags & PANGO_ANALYSIS_FLAG_CENTERED_BASELINE) rise += logical_rect.y + logical_rect.height / 2; |