efl_ui_spotlight_manager: apply vis changes to subobj
authorMarcel Hollerbach <mail@marcel-hollerbach.de>
Mon, 28 Oct 2019 16:40:17 +0000 (12:40 -0400)
committerWonki Kim <wonki_.kim@samsung.com>
Mon, 11 Nov 2019 02:20:39 +0000 (11:20 +0900)
Summary:
when the sportlight is hidden, the state should be applied to the
backclip and foreclip, in order to hide the subobjects correctly.

This fixes dangling showing widgets.

Reviewers: Jaehyun_Cho, zmike, segfaultxavi

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10468

src/lib/elementary/efl_ui_spotlight_manager_plain.c
src/lib/elementary/efl_ui_spotlight_manager_scroll.c
src/lib/elementary/efl_ui_spotlight_manager_stack.c

index ec7c3a2..f7d8133 100644 (file)
@@ -71,7 +71,7 @@ _efl_ui_spotlight_manager_plain_efl_ui_spotlight_manager_bind(Eo *obj, Efl_Ui_Sp
 
         for (int i = 0; i < efl_content_count(spotlight) ; ++i) {
            Efl_Gfx_Entity *elem = efl_pack_content_get(spotlight, i);
-           efl_canvas_group_member_add(pd->group, elem);
+           efl_canvas_group_member_add(pd->container, elem);
            efl_gfx_entity_visible_set(elem, EINA_FALSE);
         }
         index = efl_ui_spotlight_active_element_get(spotlight);
@@ -102,7 +102,7 @@ _content_changed(Eo *obj, Efl_Ui_Spotlight_Manager_Plain_Data *pd)
 EOLIAN static void
 _efl_ui_spotlight_manager_plain_efl_ui_spotlight_manager_content_add(Eo *obj, Efl_Ui_Spotlight_Manager_Plain_Data *pd, Efl_Gfx_Entity *subobj, int index EINA_UNUSED)
 {
-   efl_canvas_group_member_add(pd->group, subobj);
+   efl_canvas_group_member_add(pd->container, subobj);
    efl_gfx_entity_visible_set(subobj, EINA_FALSE);
    _content_changed(obj, pd);
 }
@@ -110,7 +110,7 @@ _efl_ui_spotlight_manager_plain_efl_ui_spotlight_manager_content_add(Eo *obj, Ef
 EOLIAN static void
 _efl_ui_spotlight_manager_plain_efl_ui_spotlight_manager_content_del(Eo *obj, Efl_Ui_Spotlight_Manager_Plain_Data *pd, Efl_Gfx_Entity *subobj, int index EINA_UNUSED)
 {
-   efl_canvas_group_member_remove(pd->group, subobj);
+   efl_canvas_group_member_remove(pd->container, subobj);
    _content_changed(obj, pd);
 }
 EOLIAN static void
index e7179a2..1728c26 100644 (file)
@@ -181,11 +181,13 @@ _efl_ui_spotlight_manager_scroll_efl_ui_spotlight_manager_bind(Eo *obj, Efl_Ui_S
         pd->foreclip = efl_add(EFL_CANVAS_RECTANGLE_CLASS,
                                evas_object_evas_get(group));
         evas_object_static_clip_set(pd->foreclip, EINA_TRUE);
+        efl_canvas_group_member_add(spotlight, pd->foreclip);
 
         pd->backclip = efl_add(EFL_CANVAS_RECTANGLE_CLASS,
                                evas_object_evas_get(group));
         evas_object_static_clip_set(pd->backclip, EINA_TRUE);
         efl_gfx_entity_visible_set(pd->backclip, EINA_FALSE);
+        efl_canvas_group_member_add(spotlight, pd->backclip);
 
         for (int i = 0; i < efl_content_count(spotlight) ; ++i) {
            Efl_Gfx_Entity *elem = efl_pack_content_get(spotlight, i);
index e93c820..811a686 100644 (file)
@@ -148,7 +148,7 @@ _efl_ui_spotlight_manager_stack_efl_ui_spotlight_manager_bind(Eo *obj, Efl_Ui_Sp
 
         for (int i = 0; i < efl_content_count(spotlight) ; ++i) {
            Efl_Gfx_Entity *elem = efl_pack_content_get(spotlight, i);
-           efl_canvas_group_member_add(pd->group, elem);
+           efl_canvas_group_member_add(pd->container, elem);
            efl_gfx_entity_visible_set(elem, EINA_FALSE);
         }
         if (efl_ui_spotlight_active_element_get(spotlight))
@@ -163,14 +163,14 @@ _efl_ui_spotlight_manager_stack_efl_ui_spotlight_manager_bind(Eo *obj, Efl_Ui_Sp
 EOLIAN static void
 _efl_ui_spotlight_manager_stack_efl_ui_spotlight_manager_content_add(Eo *obj EINA_UNUSED, Efl_Ui_Spotlight_Manager_Stack_Data *pd, Efl_Gfx_Entity *subobj, int index EINA_UNUSED)
 {
-   efl_canvas_group_member_add(pd->group, subobj);
+   efl_canvas_group_member_add(pd->container, subobj);
    efl_gfx_entity_visible_set(subobj, EINA_FALSE);
 }
 
 EOLIAN static void
 _efl_ui_spotlight_manager_stack_efl_ui_spotlight_manager_content_del(Eo *obj EINA_UNUSED, Efl_Ui_Spotlight_Manager_Stack_Data *pd, Efl_Gfx_Entity *subobj, int index EINA_UNUSED)
 {
-   efl_canvas_group_member_remove(pd->group, subobj);
+   efl_canvas_group_member_remove(pd->container, subobj);
 }
 
 static void