[gtk+/gtk-3-14] gtktextlayout: fix for right margin with RTL text



commit 583a8dd1a716b25b7b5ec011a84777b8ec8c4912
Author: Sebastien Lafargue <slafargue gnome org>
Date:   Thu Dec 18 20:52:58 2014 +0100

    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 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtktextlayout.c b/gtk/gtktextlayout.c
index 7dbb62e..5019cf0 100644
--- a/gtk/gtktextlayout.c
+++ b/gtk/gtktextlayout.c
@@ -2129,6 +2129,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;
@@ -2447,7 +2448,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
@@ -2455,7 +2457,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))
        {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]