summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hirt <hirt.danny@gmail.com>2017-08-29 13:05:01 +0300
committerDaniel Hirt <hirt.danny@gmail.com>2017-08-29 14:54:54 +0300
commitb4c1e9c1480527320d96742aaf29a53c7f9a316d (patch)
tree51e64f55739152a249e9668640ab79034b8b53b2
parent39288d12c2f9a12fd9e55c4f676118be7915a2b1 (diff)
downloadefl-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.c3
-rw-r--r--src/tests/evas/evas_test_textblock.c10
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. */