ui/flip: fix efl_pack usage
Objects packed would end up invisible as they were not marked as "_elm_leaveme". I also added some list safety code but I think the entire pack API on flip is very much untested and unstable. @fix Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es> Differential Revision: https://phab.enlightenment.org/D7367
This commit is contained in:
parent
563f91eaf9
commit
f1f3607f8c
|
@ -2137,7 +2137,7 @@ _update_front_back(Eo *obj, Efl_Ui_Flip_Data *pd)
|
|||
static void
|
||||
_content_added(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_Entity *content)
|
||||
{
|
||||
evas_object_smart_member_add(content, obj);
|
||||
elm_widget_sub_object_add(obj, content);
|
||||
|
||||
if (!pd->front.content)
|
||||
{
|
||||
|
@ -2158,7 +2158,7 @@ _content_removed(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_Entity *content)
|
|||
int index, count;
|
||||
Eina_Bool state;
|
||||
|
||||
evas_object_smart_member_del(content);
|
||||
elm_widget_sub_object_del(obj, content);
|
||||
// if its not the front or back object just return.
|
||||
if ((pd->front.content != content) ||
|
||||
(pd->back.content != content))
|
||||
|
@ -2212,6 +2212,7 @@ _efl_ui_flip_efl_container_content_count(Eo *obj EINA_UNUSED, Efl_Ui_Flip_Data *
|
|||
EOLIAN static Eina_Bool
|
||||
_efl_ui_flip_efl_container_content_remove(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_Entity *content)
|
||||
{
|
||||
pd->content_list = eina_list_remove(pd->content_list, content);
|
||||
pd->content_list = eina_list_remove(pd->content_list, content);
|
||||
_content_removed(obj, pd, content);
|
||||
return EINA_TRUE;
|
||||
|
@ -2220,6 +2221,7 @@ _efl_ui_flip_efl_container_content_remove(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx
|
|||
EOLIAN static Eina_Bool
|
||||
_efl_ui_flip_efl_pack_unpack(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_Entity *subobj)
|
||||
{
|
||||
pd->content_list = eina_list_remove(pd->content_list, subobj);
|
||||
pd->content_list = eina_list_remove(pd->content_list, subobj);
|
||||
_content_removed(obj, pd, subobj);
|
||||
return EINA_TRUE;
|
||||
|
@ -2228,6 +2230,7 @@ _efl_ui_flip_efl_pack_unpack(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_Entity *subo
|
|||
EOLIAN static Eina_Bool
|
||||
_efl_ui_flip_efl_pack_pack(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_Entity *subobj)
|
||||
{
|
||||
pd->content_list = eina_list_remove(pd->content_list, subobj);
|
||||
pd->content_list = eina_list_append(pd->content_list, subobj);
|
||||
_content_added(obj, pd, subobj);
|
||||
return EINA_TRUE;
|
||||
|
@ -2236,6 +2239,7 @@ _efl_ui_flip_efl_pack_pack(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_Entity *subobj
|
|||
EOLIAN static Eina_Bool
|
||||
_efl_ui_flip_efl_pack_linear_pack_begin(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_Entity *subobj)
|
||||
{
|
||||
pd->content_list = eina_list_remove(pd->content_list, subobj);
|
||||
pd->content_list = eina_list_prepend(pd->content_list, subobj);
|
||||
_content_added(obj, pd, subobj);
|
||||
|
||||
|
@ -2245,6 +2249,7 @@ _efl_ui_flip_efl_pack_linear_pack_begin(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_E
|
|||
EOLIAN static Eina_Bool
|
||||
_efl_ui_flip_efl_pack_linear_pack_end(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_Entity *subobj)
|
||||
{
|
||||
pd->content_list = eina_list_remove(pd->content_list, subobj);
|
||||
pd->content_list = eina_list_append(pd->content_list, subobj);
|
||||
_content_added(obj, pd, subobj);
|
||||
return EINA_TRUE;
|
||||
|
@ -2253,6 +2258,7 @@ _efl_ui_flip_efl_pack_linear_pack_end(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_Ent
|
|||
EOLIAN static Eina_Bool
|
||||
_efl_ui_flip_efl_pack_linear_pack_before(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing)
|
||||
{
|
||||
pd->content_list = eina_list_remove(pd->content_list, subobj);
|
||||
pd->content_list = eina_list_prepend_relative(pd->content_list, subobj, existing);
|
||||
_content_added(obj, pd, subobj);
|
||||
return EINA_TRUE;
|
||||
|
@ -2261,6 +2267,7 @@ _efl_ui_flip_efl_pack_linear_pack_before(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_
|
|||
EOLIAN static Eina_Bool
|
||||
_efl_ui_flip_efl_pack_linear_pack_after(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_Entity *subobj, const Efl_Gfx_Entity *existing)
|
||||
{
|
||||
pd->content_list = eina_list_remove(pd->content_list, subobj);
|
||||
pd->content_list = eina_list_append_relative(pd->content_list, subobj, existing);
|
||||
_content_added(obj, pd, subobj);
|
||||
return EINA_TRUE;
|
||||
|
@ -2271,6 +2278,7 @@ _efl_ui_flip_efl_pack_linear_pack_at(Eo *obj, Efl_Ui_Flip_Data *pd, Efl_Gfx_Enti
|
|||
{
|
||||
Efl_Gfx_Entity *existing = NULL;
|
||||
existing = eina_list_nth(pd->content_list, index);
|
||||
pd->content_list = eina_list_remove(pd->content_list, subobj);
|
||||
pd->content_list = eina_list_prepend_relative(pd->content_list, subobj, existing);
|
||||
_content_added(obj, pd, subobj);
|
||||
return EINA_TRUE;
|
||||
|
|
Loading…
Reference in New Issue