summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2019-11-20 16:45:45 +0100
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2019-11-20 17:01:34 +0100
commit643952497fb537efe429966481ed9046931c6fe5 (patch)
tree8be14cc967fea128756489547d7874e7e97dcd85
parentc41b282a0f652397aacc080d7f30a702959a32eb (diff)
downloadefl-643952497fb537efe429966481ed9046931c6fe5.tar.gz
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 ...
-rw-r--r--data/elementary/themes/edc/efl/pager.edc5
-rw-r--r--src/lib/elementary/efl_ui_spotlight_container.c12
-rw-r--r--src/lib/elementary/efl_ui_spotlight_manager.eo3
-rw-r--r--src/lib/elementary/efl_ui_spotlight_manager_plain.c13
-rw-r--r--src/lib/elementary/efl_ui_spotlight_manager_scroll.c27
-rw-r--r--src/lib/elementary/efl_ui_spotlight_manager_stack.c16
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));