herdsman pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=9685eca01640e51d403d031b05242ac2cb3ff0bb

commit 9685eca01640e51d403d031b05242ac2cb3ff0bb
Author: Daniel Hirt <hirt.da...@gmail.com>
Date:   Tue Aug 29 13:05:01 2017 +0300

    Canvas text: fix non-dirty paragraph width calculation
    
    Follow-up fix for 1624417d9137b87826962e431d08dc591f83d5e5.
    Changed for a max comparison, rather than just assigning the line's
    width.
    Also, added a test case.
    
    Fixes T5939
    
    @fix
---
 src/lib/evas/canvas/evas_object_textblock.c |  3 ++-
 src/tests/evas/evas_test_textblock.c        | 10 ++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/lib/evas/canvas/evas_object_textblock.c 
b/src/lib/evas/canvas/evas_object_textblock.c
index 91e464990e..a7a7a78f90 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -3925,7 +3925,8 @@ loop_advance:
      {
         Evas_Coord new_wmax = c->ln->w +
            c->marginl + c->marginr - (c->o->style_pad.l + c->o->style_pad.r);
-        c->par->last_fw = new_wmax;
+        if (new_wmax > c->par->last_fw)
+           c->par->last_fw = new_wmax;
         if (new_wmax > c->wmax)
            c->wmax = new_wmax;
      }
diff --git a/src/tests/evas/evas_test_textblock.c 
b/src/tests/evas/evas_test_textblock.c
index b3c60c9279..57cc36efbb 100644
--- a/src/tests/evas/evas_test_textblock.c
+++ b/src/tests/evas/evas_test_textblock.c
@@ -3865,6 +3865,16 @@ START_TEST(evas_textblock_size)
         evas_textblock_cursor_text_append(cur, "Y");
         evas_object_textblock_size_formatted_get(tb, &w, &h);
         ck_assert_int_eq(bw, w);
+
+        evas_object_textblock_text_markup_set(tb,
+              "XXXXXXXXXXXX<br>"
+              "X<ps>"
+              "YYY<br>");
+        evas_object_textblock_size_formatted_get(tb, &bw, &bh);
+        evas_textblock_cursor_paragraph_last(cur);
+        evas_textblock_cursor_text_append(cur, "Y");
+        evas_object_textblock_size_formatted_get(tb, &w, &h);
+        ck_assert_int_eq(bw, w);
      }
 
    /* FIXME: There is a lot more to be done. */

-- 


Reply via email to