diff options
author | Owen Taylor <otaylor@redhat.com> | 2004-03-13 23:28:14 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2004-03-13 23:28:14 +0000 |
commit | 83eb184c2c68bf370eef2e9970b4ef80e178899d (patch) | |
tree | 7375078f75f717007e7f2989e8213d64b462724d /gtk/gtktextlayout.c | |
parent | a636145685031760ae8200316135b0a45caa7efe (diff) | |
download | gdk-pixbuf-83eb184c2c68bf370eef2e9970b4ef80e178899d.tar.gz |
When not wrapping, do the offset of the line for justification ourselves.
Sat Mar 13 18:13:13 2004 Owen Taylor <otaylor@redhat.com>
* gtk/gtktextlayout.c (gtk_text_layout_get_line_display): When not
wrapping, do the offset of the line for justification ourselves.
(#120256, Felipe Heidrich)
Diffstat (limited to 'gtk/gtktextlayout.c')
-rw-r--r-- | gtk/gtktextlayout.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/gtk/gtktextlayout.c b/gtk/gtktextlayout.c index 874dc3cd8..60e8142d3 100644 --- a/gtk/gtktextlayout.c +++ b/gtk/gtktextlayout.c @@ -1294,7 +1294,7 @@ set_para_values (GtkTextLayout *layout, case GTK_WRAP_NONE: break; } - + display->total_width = MAX (layout->screen_width, layout->width) - display->left_margin - display->right_margin; } @@ -2090,6 +2090,26 @@ gtk_text_layout_get_line_display (GtkTextLayout *layout, display->width = PIXEL_BOUND (extents.width) + display->left_margin + display->right_margin; display->height += PANGO_PIXELS (extents.height); + + /* If we aren't wrapping, we need to do the alignment of each + * paragraph ourselves. + */ + if (pango_layout_get_width (display->layout) < 0) + { + gint excess = display->total_width - display->width; + + switch (pango_layout_get_alignment (display->layout)) + { + case PANGO_ALIGN_LEFT: + break; + case PANGO_ALIGN_CENTER: + display->x_offset += excess / 2; + break; + case PANGO_ALIGN_RIGHT: + display->x_offset += excess; + break; + } + } /* Free this if we aren't in a loop */ if (layout->wrap_loop_count == 0) |