diff options
Diffstat (limited to 'src/lib/elementary/efl_ui_spotlight_container.c')
-rw-r--r-- | src/lib/elementary/efl_ui_spotlight_container.c | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/src/lib/elementary/efl_ui_spotlight_container.c b/src/lib/elementary/efl_ui_spotlight_container.c index a5f3c9e390..131f228562 100644 --- a/src/lib/elementary/efl_ui_spotlight_container.c +++ b/src/lib/elementary/efl_ui_spotlight_container.c @@ -4,7 +4,7 @@ #include <Efl_Ui.h> #include "elm_priv.h" -#include "efl_ui_spotlight_manager_plain.eo.h" +#include "efl_ui_spotlight_plain_manager.eo.h" typedef struct _Efl_Ui_Spotlight_Container_Data { @@ -144,7 +144,7 @@ _transition_event_emission(Eo *obj EINA_UNUSED, Efl_Ui_Spotlight_Container_Data pd->show_request.to = -1; _transition_end(obj, pd); } - if (pd->position == pd->show_request.to) + if (EINA_DBL_EQ(pd->position, pd->show_request.to)) { //successfully there _transition_end(obj, pd); @@ -236,7 +236,7 @@ _efl_ui_spotlight_container_efl_object_finalize(Eo *obj, Efl_Ui_Spotlight_Contai //set a view manager in case nothing is here if (!manager) { - efl_ui_spotlight_manager_set(obj, efl_new(EFL_UI_SPOTLIGHT_MANAGER_PLAIN_CLASS)); + efl_ui_spotlight_manager_set(obj, efl_new(EFL_UI_SPOTLIGHT_PLAIN_MANAGER_CLASS)); } else { @@ -437,10 +437,8 @@ _efl_ui_spotlight_container_efl_pack_linear_pack_index_get(Eo *obj EINA_UNUSED, return eina_list_data_idx(pd->content_list, (void *)subobj); } -EOLIAN static void -_efl_ui_spotlight_container_active_element_set(Eo *obj EINA_UNUSED, - Efl_Ui_Spotlight_Container_Data *pd, - Efl_Ui_Widget *new_page) +static void +_active_element_set(Eo *obj, Efl_Ui_Spotlight_Container_Data *pd, Efl_Ui_Widget *new_page, Efl_Ui_Spotlight_Manager_Switch_Reason reason) { int before = -1; int index; @@ -463,7 +461,16 @@ _efl_ui_spotlight_container_active_element_set(Eo *obj EINA_UNUSED, } pd->curr.page = new_page; - efl_ui_spotlight_manager_switch_to(pd->transition, before, index); + efl_ui_spotlight_manager_switch_to(pd->transition, before, index, reason); + +} + +EOLIAN static void +_efl_ui_spotlight_container_active_element_set(Eo *obj EINA_UNUSED, + Efl_Ui_Spotlight_Container_Data *pd, + Efl_Ui_Widget *new_page) +{ + _active_element_set(obj, pd, new_page, EFL_UI_SPOTLIGHT_MANAGER_SWITCH_REASON_JUMP); } EOLIAN static Efl_Ui_Widget* @@ -648,7 +655,7 @@ EOLIAN static void _efl_ui_spotlight_container_spotlight_manager_set(Eo *obj, Efl_Ui_Spotlight_Container_Data *pd, Efl_Ui_Spotlight_Manager *transition) { if (!transition) - pd->transition = efl_add(EFL_UI_SPOTLIGHT_MANAGER_PLAIN_CLASS, obj); + pd->transition = efl_add(EFL_UI_SPOTLIGHT_PLAIN_MANAGER_CLASS, obj); else EINA_SAFETY_ON_FALSE_RETURN(efl_isa(transition, EFL_UI_SPOTLIGHT_MANAGER_CLASS)); @@ -670,7 +677,7 @@ _efl_ui_spotlight_container_spotlight_manager_set(Eo *obj, Efl_Ui_Spotlight_Cont _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); - efl_ui_spotlight_manager_size_set(pd->transition, pd->page_spec.sz); + _emit_page_size(obj, pd); efl_event_callback_add(pd->transition, EFL_UI_SPOTLIGHT_MANAGER_EVENT_POS_UPDATE, _pos_updated, obj); } @@ -679,7 +686,7 @@ _efl_ui_spotlight_container_spotlight_manager_set(Eo *obj, Efl_Ui_Spotlight_Cont EOLIAN static Efl_Ui_Spotlight_Manager* _efl_ui_spotlight_container_spotlight_manager_get(const Eo *obj EINA_UNUSED, Efl_Ui_Spotlight_Container_Data *pd) { - if (efl_isa(pd->transition, EFL_UI_SPOTLIGHT_MANAGER_PLAIN_CLASS)) + if (efl_isa(pd->transition, EFL_UI_SPOTLIGHT_PLAIN_MANAGER_CLASS)) return NULL; else return pd->transition; @@ -700,7 +707,7 @@ _efl_ui_spotlight_container_indicator_set(Eo *obj, Efl_Ui_Spotlight_Container_Da //the api indicates that the caller passes ownership to this function, so we need to unref here efl_unref(pd->indicator); efl_ui_spotlight_indicator_bind(pd->indicator, obj); - if (pd->position != -1) + if (!EINA_DBL_EQ(pd->position, -1)) efl_ui_spotlight_indicator_position_update(pd->indicator, pd->position); } } @@ -724,8 +731,7 @@ _efl_ui_spotlight_container_push(Eo *obj, Efl_Ui_Spotlight_Container_Data *pd EI if (!efl_pack_end(obj, view)) return; } - - efl_ui_spotlight_active_element_set(obj, view); + _active_element_set(obj, pd, view, EFL_UI_SPOTLIGHT_MANAGER_SWITCH_REASON_PUSH); } static Eina_Value @@ -780,7 +786,7 @@ _efl_ui_spotlight_container_pop(Eo *obj, Efl_Ui_Spotlight_Container_Data *pd, Ei if (del) transition_done = eina_future_then(transition_done, _delete_obj, NULL); - efl_ui_spotlight_active_element_set(obj, efl_pack_content_get(obj, new_index)); + _active_element_set(obj, pd, efl_pack_content_get(obj, new_index), EFL_UI_SPOTLIGHT_MANAGER_SWITCH_REASON_POP); return transition_done; } |