From 73c8f3092820c51058f188313c3249685be42a38 Mon Sep 17 00:00:00 2001 From: Sebastien Lafargue Date: Thu, 18 Dec 2014 20:52:58 +0100 Subject: gtktextlayout: fix for right margin with RTL text When a RTL paragraph is not set to wrap, the right margin is not respected because of the margins counted twice so we replace display->width by PIXEL_BOUND (extents.width), the same quantity without the margins. https://bugzilla.gnome.org/show_bug.cgi?id=741702 --- gtk/gtktextlayout.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'gtk/gtktextlayout.c') diff --git a/gtk/gtktextlayout.c b/gtk/gtktextlayout.c index 44b87bbd99..55a0e1254b 100644 --- a/gtk/gtktextlayout.c +++ b/gtk/gtktextlayout.c @@ -2147,6 +2147,7 @@ gtk_text_layout_get_line_display (GtkTextLayout *layout, GtkTextIter iter; GtkTextAttributes *style; gchar *text; + gint text_pixel_width; PangoAttrList *attrs; gint text_allocated, layout_byte_offset, buffer_byte_offset; PangoRectangle extents; @@ -2465,7 +2466,8 @@ gtk_text_layout_get_line_display (GtkTextLayout *layout, pango_layout_get_extents (display->layout, NULL, &extents); - display->width = PIXEL_BOUND (extents.width) + display->left_margin + display->right_margin; + text_pixel_width = PIXEL_BOUND (extents.width); + display->width = text_pixel_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 @@ -2473,7 +2475,7 @@ gtk_text_layout_get_line_display (GtkTextLayout *layout, */ if (pango_layout_get_width (display->layout) < 0) { - gint excess = display->total_width - display->width; + gint excess = display->total_width - text_pixel_width; switch (pango_layout_get_alignment (display->layout)) { -- cgit v1.2.1