From 7f7dbc1ecc87f11c03aea4a37e2011af3dd9b308 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Tue, 8 Jan 2008 22:55:14 +0000 Subject: Ignore indent if aligned center, and document so. This assumption was 2008-01-08 Behdad Esfahbod * pango/pango-layout.c: Ignore indent if aligned center, and document so. This assumption was present in some places and not the others. Fixed now. svn path=/trunk/; revision=2538 --- ChangeLog | 6 ++++++ pango/pango-layout.c | 17 ++++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index d0741bda..06bf86e7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-01-08 Behdad Esfahbod + + * pango/pango-layout.c: Ignore indent if aligned center, and document + so. This assumption was present in some places and not the others. + Fixed now. + 2008-01-08 Behdad Esfahbod Bug 508007 – Add option for single-paragraph mode to pango-view diff --git a/pango/pango-layout.c b/pango/pango-layout.c index dd1ce5bd..df4772af 100644 --- a/pango/pango-layout.c +++ b/pango/pango-layout.c @@ -451,6 +451,9 @@ pango_layout_is_wrapped (PangoLayout *layout) * of @indent will produce a hanging indentation. That is, the first line will * have the full width, and subsequent lines will be indented by the * absolute value of @indent. + * + * The indent setting is ignored if layout alignment is set to + * %PANGO_ALIGN_CENTER. **/ void pango_layout_set_indent (PangoLayout *layout, @@ -3314,10 +3317,18 @@ process_line (PangoLayout *layout, if (layout->ellipsize != PANGO_ELLIPSIZE_NONE) state->remaining_width = -1; - else if (state->first_line) - state->remaining_width = (layout->indent >= 0) ? layout->width - layout->indent : layout->width; else - state->remaining_width = (layout->indent >= 0) ? layout->width : layout->width + layout->indent; + { + state->remaining_width = layout->width; + + if (layout->alignment != PANGO_ALIGN_CENTER) + { + if (state->first_line && layout->indent >= 0) + state->remaining_width -= layout->indent; + else if (!state->first_line && layout->indent < 0) + state->remaining_width += layout->indent; + } + } DEBUG ("starting to fill line", line, state); while (state->items) -- cgit v1.2.1