summaryrefslogtreecommitdiff
path: root/gtk/gtktextlayout.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2004-03-13 23:28:14 +0000
committerOwen Taylor <otaylor@src.gnome.org>2004-03-13 23:28:14 +0000
commit83eb184c2c68bf370eef2e9970b4ef80e178899d (patch)
tree7375078f75f717007e7f2989e8213d64b462724d /gtk/gtktextlayout.c
parenta636145685031760ae8200316135b0a45caa7efe (diff)
downloadgdk-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.c22
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)