From 048dcc32633f47a2bc8eaab856e3288b2c72abe6 Mon Sep 17 00:00:00 2001 From: Daniel Hirt Date: Tue, 29 Aug 2017 13:05:01 +0300 Subject: [PATCH] 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 ae0ab261af..57d54bc2ea 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -3920,7 +3920,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
" + "X" + "YYY
"); + 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. */