From 13c62c10e17afa3dd51830db16295329439a4105 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Fri, 6 Jan 2017 15:22:54 +0900 Subject: [PATCH] evas: Introduce event style_insets,changed for tb This will be triggered in the rare case when a textblock's insets are changed (ie. the padding due to filters or style). This fixes invalid sizing in the test case in elm (due to a lack of event after program_set). @feature --- src/bin/elementary/test_gfx_filters.c | 1 + src/lib/evas/canvas/efl_canvas_text.eo | 1 + src/lib/evas/canvas/evas_object_textblock.c | 1 + 3 files changed, 3 insertions(+) diff --git a/src/bin/elementary/test_gfx_filters.c b/src/bin/elementary/test_gfx_filters.c index 755405ecfd..299b07d0a2 100644 --- a/src/bin/elementary/test_gfx_filters.c +++ b/src/bin/elementary/test_gfx_filters.c @@ -477,6 +477,7 @@ test_gfx_filters(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *eve // Experimental textblock support o = tb = evas_object_textblock_add(evas_object_evas_get(win)); + efl_event_callback_add(o, EFL_CANVAS_TEXT_EVENT_STYLE_INSETS_CHANGED, _textblock_resize, NULL); efl_event_callback_add(o, EFL_GFX_EVENT_RESIZE, _textblock_resize, NULL); Evas_Textblock_Style *st = evas_textblock_style_new(); evas_textblock_style_set(st, "DEFAULT='font=Sans font_size=20 color=#FFF wrap=word'"); diff --git a/src/lib/evas/canvas/efl_canvas_text.eo b/src/lib/evas/canvas/efl_canvas_text.eo index c018d11fca..ab69ec9212 100644 --- a/src/lib/evas/canvas/efl_canvas_text.eo +++ b/src/lib/evas/canvas/efl_canvas_text.eo @@ -376,5 +376,6 @@ class Efl.Canvas.Text (Efl.Canvas.Object, Efl.Text, Efl.Canvas.Filter.Internal) } events { changed; [[Called when the content (text or annotations) changed.]] + style_insets,changed; [[Called when the property @.style_insets changed.]] } } diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c index 1cd85cd345..bfba0b6cfa 100644 --- a/src/lib/evas/canvas/evas_object_textblock.c +++ b/src/lib/evas/canvas/evas_object_textblock.c @@ -6387,6 +6387,7 @@ _layout(const Evas_Object *eo_obj, int w, int h, int *w_ret, int *h_ret) _paragraphs_clear(eo_obj, c->paragraphs); LYDBG("ZZ: ... layout #2\n"); _layout(eo_obj, w, h, w_ret, h_ret); + efl_event_callback_call((Eo *) eo_obj, EFL_CANVAS_TEXT_EVENT_STYLE_INSETS_CHANGED, NULL); } c->o->obstacle_changed = EINA_FALSE;