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)
This commit is contained in:
Owen Taylor
2004-03-13 23:28:14 +00:00
committed by Owen Taylor
parent a636145685
commit 83eb184c2c
6 changed files with 51 additions and 1 deletions

View File

@ -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)