bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=58a2fa931bf5cfa3093c0b9210c1a7ab60fc4e50

commit 58a2fa931bf5cfa3093c0b9210c1a7ab60fc4e50
Author: Marcel Hollerbach <[email protected]>
Date:   Wed Nov 20 16:45:45 2019 +0100

    efl_ui_spotlight_manager: remove the group object
    
    i do not know why its there, it caused a bug in the past (in regards of
    clippers and visibility). Now we can get rid of it completly, the state
    of it is always compatible to the one of the widget itself, soooo ...
    
    Reviewed-by: Mike Blumenkrantz <[email protected]>
    Differential Revision: https://phab.enlightenment.org/D10702
---
 data/elementary/themes/edc/efl/pager.edc           |  5 ----
 src/lib/elementary/efl_ui_spotlight_container.c    | 12 ++++------
 src/lib/elementary/efl_ui_spotlight_manager.eo     |  3 ---
 .../elementary/efl_ui_spotlight_manager_plain.c    | 13 ++++-------
 .../elementary/efl_ui_spotlight_manager_scroll.c   | 27 +++++++++++-----------
 .../elementary/efl_ui_spotlight_manager_stack.c    | 16 ++++++-------
 6 files changed, 29 insertions(+), 47 deletions(-)

diff --git a/data/elementary/themes/edc/efl/pager.edc 
b/data/elementary/themes/edc/efl/pager.edc
index 6f45c3680c..b4a3dbecdb 100644
--- a/data/elementary/themes/edc/efl/pager.edc
+++ b/data/elementary/themes/edc/efl/pager.edc
@@ -10,11 +10,6 @@ group { "efl/pager"; data.item: "version" "123";
          desc { "default";
          }
       }
-      swallow { "efl.page_root";
-         scale;
-         desc { "default";
-         }
-      }
       swallow { "efl.indicator";
          scale;
          desc { "default";
diff --git a/src/lib/elementary/efl_ui_spotlight_container.c 
b/src/lib/elementary/efl_ui_spotlight_container.c
index 993438c200..a715d7f04e 100644
--- a/src/lib/elementary/efl_ui_spotlight_container.c
+++ b/src/lib/elementary/efl_ui_spotlight_container.c
@@ -9,7 +9,7 @@
 typedef struct _Efl_Ui_Spotlight_Container_Data
 {
    Eina_List *content_list;
-   Eo *page_root, *event;
+   Eo *event;
    struct {
       Eina_Size2D sz;
    } page_spec;
@@ -203,10 +203,7 @@ _efl_ui_spotlight_container_efl_object_constructor(Eo *obj,
 
    elm_widget_can_focus_set(obj, EINA_FALSE);
 
-   pd->page_root = efl_add(EFL_CANVAS_GROUP_CLASS, evas_object_evas_get(obj));
-   efl_content_set(efl_part(obj, "efl.page_root"), pd->page_root);
-
-   efl_event_callback_add(pd->page_root, EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, 
_resize_cb, pd);
+   efl_event_callback_add(obj, EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, _resize_cb, 
pd);
 
    pd->event = efl_add(EFL_CANVAS_RECTANGLE_CLASS,
                        evas_object_evas_get(obj));
@@ -616,7 +613,7 @@ _efl_ui_spotlight_container_spotlight_manager_set(Eo *obj, 
Efl_Ui_Spotlight_Cont
 
    if (pd->transition)
      {
-        efl_ui_spotlight_manager_bind(pd->transition, NULL, NULL);
+        efl_ui_spotlight_manager_bind(pd->transition, NULL);
         efl_del(pd->transition);
      }
 
@@ -631,8 +628,7 @@ _efl_ui_spotlight_container_spotlight_manager_set(Eo *obj, 
Efl_Ui_Spotlight_Cont
         //disable animation when not finalized yet, this help reducing the 
overhead of scheduling a animation that will not be displayed
         _animated_transition_manager_eval(obj, pd);
         efl_ui_spotlight_manager_animated_transition_set(pd->transition, 
efl_finalized_get(obj));
-        efl_ui_spotlight_manager_bind(pd->transition, obj,
-          pd->page_root);
+        efl_ui_spotlight_manager_bind(pd->transition, obj);
         efl_ui_spotlight_manager_size_set(pd->transition, pd->page_spec.sz);
         efl_event_callback_add(pd->transition, 
EFL_UI_SPOTLIGHT_MANAGER_EVENT_POS_UPDATE, _pos_updated, obj);
      }
diff --git a/src/lib/elementary/efl_ui_spotlight_manager.eo 
b/src/lib/elementary/efl_ui_spotlight_manager.eo
index ddb1ac1041..6de4898a94 100644
--- a/src/lib/elementary/efl_ui_spotlight_manager.eo
+++ b/src/lib/elementary/efl_ui_spotlight_manager.eo
@@ -18,9 +18,6 @@ abstract @beta Efl.Ui.Spotlight.Manager extends Efl.Object {
       ]]
       params {
         spotlight : Efl.Ui.Spotlight.Container; [[The container to bind the 
manager to.]]
-        group : Efl.Canvas.Group; [[The graphical group where the views should 
be added with
-                                    @Efl.Canvas.Group.group_member_add and 
removed with
-                                    @Efl.Canvas.Group.group_member_remove.]]
       }
     }
     content_add @pure_virtual  {
diff --git a/src/lib/elementary/efl_ui_spotlight_manager_plain.c 
b/src/lib/elementary/efl_ui_spotlight_manager_plain.c
index 50371ed3fc..49ca251c6a 100644
--- a/src/lib/elementary/efl_ui_spotlight_manager_plain.c
+++ b/src/lib/elementary/efl_ui_spotlight_manager_plain.c
@@ -8,7 +8,6 @@
 
 typedef struct {
    Efl_Ui_Spotlight_Container * container;
-   Efl_Gfx_Entity *group;
    Eina_Size2D page_size;
    Efl_Ui_Widget *current_content;
    Eina_Bool animation;
@@ -31,7 +30,7 @@ static void
 _geom_sync(Eo *obj EINA_UNUSED, Efl_Ui_Spotlight_Manager_Plain_Data *pd)
 {
    Efl_Gfx_Entity *entity = pd->current_content;
-   Eina_Rect group_pos = efl_gfx_entity_geometry_get(pd->group);
+   Eina_Rect group_pos = efl_gfx_entity_geometry_get(pd->container);
    Eina_Rect goal = EINA_RECT_EMPTY();
 
    goal.size = pd->page_size;
@@ -58,16 +57,14 @@ EFL_CALLBACKS_ARRAY_DEFINE(group_callback,
 )
 
 EOLIAN static void
-_efl_ui_spotlight_manager_plain_efl_ui_spotlight_manager_bind(Eo *obj, 
Efl_Ui_Spotlight_Manager_Plain_Data *pd, Efl_Ui_Spotlight_Container *spotlight, 
Efl_Canvas_Group *group)
+_efl_ui_spotlight_manager_plain_efl_ui_spotlight_manager_bind(Eo *obj, 
Efl_Ui_Spotlight_Manager_Plain_Data *pd, Efl_Ui_Spotlight_Container *spotlight)
 {
-   if (spotlight && group)
+   if (spotlight)
      {
         Efl_Ui_Widget *index;
 
         pd->container = spotlight;
-        pd->group = group;
-
-        efl_event_callback_array_add(pd->group, group_callback(), obj);
+        efl_event_callback_array_add(pd->container, group_callback(), obj);
 
         for (int i = 0; i < efl_content_count(spotlight) ; ++i) {
            Efl_Gfx_Entity *elem = efl_pack_content_get(spotlight, i);
@@ -147,7 +144,7 @@ _efl_ui_spotlight_manager_plain_efl_object_destructor(Eo 
*obj, Efl_Ui_Spotlight_
 {
    efl_destructor(efl_super(obj, MY_CLASS));
 
-   efl_event_callback_array_del(pd->group, group_callback(), obj);
+   efl_event_callback_array_del(pd->container, group_callback(), obj);
 
    for (int i = 0; i < efl_content_count(pd->container); ++i)
      {
diff --git a/src/lib/elementary/efl_ui_spotlight_manager_scroll.c 
b/src/lib/elementary/efl_ui_spotlight_manager_scroll.c
index 34baa3fbfb..d6e1dbad21 100644
--- a/src/lib/elementary/efl_ui_spotlight_manager_scroll.c
+++ b/src/lib/elementary/efl_ui_spotlight_manager_scroll.c
@@ -7,7 +7,7 @@
 
 typedef struct {
    Efl_Ui_Spotlight_Container * container;
-   Efl_Gfx_Entity *group, *foreclip, *backclip;
+   Efl_Gfx_Entity *foreclip, *backclip;
    Eina_Size2D page_size;
    struct {
       Eina_Bool active;
@@ -39,7 +39,7 @@ static void
 _apply_box_properties(Eo *obj, Efl_Ui_Spotlight_Manager_Scroll_Data *pd)
 {
    Eina_Rect geometry = EINA_RECT_EMPTY();
-   Eina_Rect group_pos = efl_gfx_entity_geometry_get(pd->group);
+   Eina_Rect group_pos = efl_gfx_entity_geometry_get(pd->container);
    double current_pos;
 
    if (pd->transition.active)
@@ -169,22 +169,21 @@ EFL_CALLBACKS_ARRAY_DEFINE(mouse_listeners,
 );
 
 EOLIAN static void
-_efl_ui_spotlight_manager_scroll_efl_ui_spotlight_manager_bind(Eo *obj, 
Efl_Ui_Spotlight_Manager_Scroll_Data *pd, Efl_Ui_Spotlight_Container 
*spotlight, Efl_Canvas_Group *group)
+_efl_ui_spotlight_manager_scroll_efl_ui_spotlight_manager_bind(Eo *obj, 
Efl_Ui_Spotlight_Manager_Scroll_Data *pd, Efl_Ui_Spotlight_Container *spotlight)
 {
-   if (spotlight && group)
+   if (spotlight)
      {
         pd->container = spotlight;
-        pd->group = group;
-        efl_event_callback_add(pd->group, EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, 
_resize_cb, obj);
-        efl_event_callback_add(pd->group, 
EFL_GFX_ENTITY_EVENT_POSITION_CHANGED, _move_cb, obj);
+        efl_event_callback_add(pd->container, 
EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, _resize_cb, obj);
+        efl_event_callback_add(pd->container, 
EFL_GFX_ENTITY_EVENT_POSITION_CHANGED, _move_cb, obj);
 
         pd->foreclip = efl_add(EFL_CANVAS_RECTANGLE_CLASS,
-                               evas_object_evas_get(group));
+                               evas_object_evas_get(pd->container));
         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_evas_get(pd->container));
         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);
@@ -192,7 +191,7 @@ 
_efl_ui_spotlight_manager_scroll_efl_ui_spotlight_manager_bind(Eo *obj, Efl_Ui_S
         for (int i = 0; i < efl_content_count(spotlight) ; ++i) {
            Efl_Gfx_Entity *elem = efl_pack_content_get(spotlight, i);
            efl_canvas_object_clipper_set(elem, pd->backclip);
-           efl_canvas_group_member_add(pd->group, elem);
+           efl_canvas_group_member_add(pd->container, elem);
            efl_gfx_entity_visible_set(elem, EINA_TRUE);
         }
         _apply_box_properties(obj, pd);
@@ -207,7 +206,7 @@ 
_efl_ui_spotlight_manager_scroll_efl_ui_spotlight_manager_content_add(Eo *obj EI
 {
    efl_gfx_entity_visible_set(subobj, EINA_TRUE);
    efl_canvas_object_clipper_set(subobj, pd->backclip);
-   efl_canvas_group_member_add(pd->group, subobj);
+   efl_canvas_group_member_add(pd->container, subobj);
 
    if (!pd->transition.active)
      _apply_box_properties(obj, pd);
@@ -218,7 +217,7 @@ EOLIAN static void
 _efl_ui_spotlight_manager_scroll_efl_ui_spotlight_manager_content_del(Eo *obj 
EINA_UNUSED, Efl_Ui_Spotlight_Manager_Scroll_Data *pd, Efl_Gfx_Entity *subobj, 
int index EINA_UNUSED)
 {
    efl_canvas_object_clipper_set(subobj, NULL);
-   efl_canvas_group_member_remove(pd->group, subobj);
+   efl_canvas_group_member_remove(pd->container, subobj);
 
    if (!pd->transition.active)
      _apply_box_properties(obj, pd);
@@ -326,8 +325,8 @@ 
_efl_ui_spotlight_manager_scroll_efl_ui_spotlight_manager_animated_transition_ge
 EOLIAN static void
 _efl_ui_spotlight_manager_scroll_efl_object_invalidate(Eo *obj, 
Efl_Ui_Spotlight_Manager_Scroll_Data *pd EINA_UNUSED)
 {
-   efl_event_callback_del(pd->group, EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, 
_resize_cb, obj);
-   efl_event_callback_del(pd->group, EFL_GFX_ENTITY_EVENT_POSITION_CHANGED, 
_move_cb, obj);
+   efl_event_callback_del(pd->container, EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, 
_resize_cb, obj);
+   efl_event_callback_del(pd->container, 
EFL_GFX_ENTITY_EVENT_POSITION_CHANGED, _move_cb, obj);
    efl_event_callback_array_del(efl_content_get(efl_part(pd->container, 
"efl.event")), mouse_listeners(), obj);
    efl_del(pd->backclip);
    efl_del(pd->foreclip);
diff --git a/src/lib/elementary/efl_ui_spotlight_manager_stack.c 
b/src/lib/elementary/efl_ui_spotlight_manager_stack.c
index 3696eb991e..42e80d7b0b 100644
--- a/src/lib/elementary/efl_ui_spotlight_manager_stack.c
+++ b/src/lib/elementary/efl_ui_spotlight_manager_stack.c
@@ -8,7 +8,6 @@
 
 typedef struct {
    Efl_Ui_Spotlight_Container * container;
-   Efl_Gfx_Entity *group;
    Efl_Canvas_Animation_Player *alpha_anim;
    Efl_Gfx_Entity *content[2];
    int ids[2]; //only used when in animation
@@ -21,7 +20,7 @@ typedef struct {
 static void
 _geom_sync(Eo *obj EINA_UNUSED, Efl_Ui_Spotlight_Manager_Stack_Data *pd)
 {
-   Eina_Rect group_pos = efl_gfx_entity_geometry_get(pd->group);
+   Eina_Rect group_pos = efl_gfx_entity_geometry_get(pd->container);
    Eina_Rect goal = EINA_RECT_EMPTY();
    goal.size = pd->page_size;
    goal.y = (group_pos.y + group_pos.h/2)-pd->page_size.h/2;
@@ -69,15 +68,14 @@ _hide_object_cb(void *data, const Efl_Event *ev)
 }
 
 EOLIAN static void
-_efl_ui_spotlight_manager_stack_efl_ui_spotlight_manager_bind(Eo *obj, 
Efl_Ui_Spotlight_Manager_Stack_Data *pd, Efl_Ui_Spotlight_Container *spotlight, 
Efl_Canvas_Group *group)
+_efl_ui_spotlight_manager_stack_efl_ui_spotlight_manager_bind(Eo *obj, 
Efl_Ui_Spotlight_Manager_Stack_Data *pd, Efl_Ui_Spotlight_Container *spotlight)
 {
-   if (spotlight && group)
+   if (spotlight)
      {
         pd->container = spotlight;
-        pd->group = group;
 
-        efl_event_callback_add(pd->group, EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, 
_resize_cb, obj);
-        efl_event_callback_add(pd->group, 
EFL_GFX_ENTITY_EVENT_POSITION_CHANGED, _move_cb, obj);
+        efl_event_callback_add(pd->container, 
EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, _resize_cb, obj);
+        efl_event_callback_add(pd->container, 
EFL_GFX_ENTITY_EVENT_POSITION_CHANGED, _move_cb, obj);
 
         pd->alpha_anim = efl_add(EFL_CANVAS_ANIMATION_ALPHA_CLASS, obj);
         efl_animation_alpha_set(pd->alpha_anim, 0.0, 1.0);
@@ -167,8 +165,8 @@ 
_efl_ui_spotlight_manager_stack_efl_ui_spotlight_manager_size_set(Eo *obj, Efl_U
 EOLIAN static void
 _efl_ui_spotlight_manager_stack_efl_object_invalidate(Eo *obj, 
Efl_Ui_Spotlight_Manager_Stack_Data *pd EINA_UNUSED)
 {
-   efl_event_callback_del(pd->group, EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, 
_resize_cb, obj);
-   efl_event_callback_del(pd->group, EFL_GFX_ENTITY_EVENT_POSITION_CHANGED, 
_move_cb, obj);
+   efl_event_callback_del(pd->container, EFL_GFX_ENTITY_EVENT_SIZE_CHANGED, 
_resize_cb, obj);
+   efl_event_callback_del(pd->container, 
EFL_GFX_ENTITY_EVENT_POSITION_CHANGED, _move_cb, obj);
 
    efl_invalidate(efl_super(obj, MY_CLASS));
 

-- 


Reply via email to