From 37f1a46c4a23a19e8aeece005b506dd0727f6196 Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Wed, 29 Aug 2018 16:05:35 +0900 Subject: [PATCH] Elm.Mapbuf: do not set is_static_clip to its content Summary: If an object's is_static_clip is TRUE then _evas_render_phase1_object_process does not draw the object and its smart member from the below commit (1). On the other hand, the Elm.Mapbuf sets is_static_clip to its content from the below commit (2). So you cannot see the content. If the commit tried to solve over-render, it could be changed to: if (wd->content) evas_object_static_clip_set(wd->content, !wd->enabled); from: if (wd->content) evas_object_static_clip_set(wd->content, wd->enabled); or there could be another way. (1) commit 1bba6d5759d859d0db9ad5b5556883044d3a1b11 Author: Carsten Haitzler (Rasterman) Date: Wed Nov 23 13:57:27 2016 +0900 evas phase 1 process - shortcut objects that are pure static clips only these objects don't actually produce - or should produce update regions etc. etc. as the objects that are clipped should produce those. they are not active objects. so skip them very early after just ensuring they are in delete objects if needed. (2) commit 7ca0a3dcac2ee7fc7d7ae62277dde05a3b77b276 (of core/elementary.git) Author: Carsten Haitzler Date: Wed Jan 19 11:59:53 2011 +0000 fix over-render bug in map/mapbuf and with changed flags! that was nasty to find! SVN revision: 56220 Test Plan: [Sample Code] #include EAPI_MAIN int elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED) { Evas_Object *win, *bx, *mb, *layout, *icon; unsigned int i, j; char buf[255]; elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); win = elm_win_util_standard_add("mapbuf", "Mapbuf Example"); elm_win_autodel_set(win, EINA_TRUE); bx = elm_box_add(win); evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, bx); evas_object_show(bx); mb = elm_mapbuf_add(win); evas_object_size_hint_weight_set(mb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(mb, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_box_pack_end(bx, mb); layout = elm_layout_add(win); evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, layout); snprintf(buf, sizeof(buf), "/home/kimcinoo/Upstream/efl/src/examples/elementary/layout_example.edj"); elm_layout_file_set(layout, buf, "example/mylayout"); evas_object_show(layout); icon = elm_icon_add(win); elm_icon_standard_set(icon, "home"); evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(icon, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show(icon); elm_object_part_content_set(layout, "example/custom", icon); elm_object_content_set(mb, layout); evas_object_show(mb); elm_mapbuf_enabled_set(mb, EINA_TRUE); evas_object_resize(win, 240, 320); evas_object_show(win); elm_run(); return 0; } ELM_MAIN() Reviewers: raster, Hermet Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers, zmike Tags: #efl Differential Revision: https://phab.enlightenment.org/D6915 --- src/lib/elementary/elm_mapbuf.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/elementary/elm_mapbuf.c b/src/lib/elementary/elm_mapbuf.c index 8be2124a6c..36c9a46977 100644 --- a/src/lib/elementary/elm_mapbuf.c +++ b/src/lib/elementary/elm_mapbuf.c @@ -329,8 +329,6 @@ _internal_enable_set(Eo *obj, Elm_Mapbuf_Data *sd, Eina_Bool enabled) if (sd->enabled == enabled) return; sd->enabled = enabled; - if (sd->content) evas_object_static_clip_set(sd->content, sd->enabled); - if (!sd->enabled && sd->content) { evas_object_map_set(sd->content, NULL);