diff options
author | Daniel Hirt <hirt.danny@gmail.com> | 2017-08-29 13:05:01 +0300 |
---|---|---|
committer | Daniel Hirt <hirt.danny@gmail.com> | 2017-08-29 14:54:54 +0300 |
commit | b4c1e9c1480527320d96742aaf29a53c7f9a316d (patch) | |
tree | 51e64f55739152a249e9668640ab79034b8b53b2 | |
parent | 39288d12c2f9a12fd9e55c4f676118be7915a2b1 (diff) | |
download | efl-devs/herdsman/fixes.tar.gz |
Canvas text: fix non-dirty paragraph width calculationdevs/herdsman/fixes
Follow-up fix for 1624417d9137b87826962e431d08dc591f83d5e5.
Changed for a max comparison, rather than just assigning the line's
width.
Also, added a test case.
@fix
-rw-r--r-- | src/lib/evas/canvas/evas_object_textblock.c | 3 | ||||
-rw-r--r-- | src/tests/evas/evas_test_textblock.c | 10 |
2 files changed, 12 insertions, 1 deletions
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<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. */ |