From d927668b64e45b14b710a8515bd57192d96bea10 Mon Sep 17 00:00:00 2001 From: Jaeun Choi Date: Wed, 23 Jan 2019 21:36:49 +0900 Subject: [PATCH] efl_ui_pager: add missing cases in pack_at function --- src/lib/elementary/efl_ui_pager.c | 44 ++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/src/lib/elementary/efl_ui_pager.c b/src/lib/elementary/efl_ui_pager.c index e0e3313906..5aac2e0887 100644 --- a/src/lib/elementary/efl_ui_pager.c +++ b/src/lib/elementary/efl_ui_pager.c @@ -503,29 +503,41 @@ _efl_ui_pager_efl_pack_linear_pack_after(Eo *obj EINA_UNUSED, } EOLIAN static Eina_Bool -_efl_ui_pager_efl_pack_linear_pack_at(Eo *obj EINA_UNUSED, +_efl_ui_pager_efl_pack_linear_pack_at(Eo *obj, Efl_Ui_Pager_Data *pd, Efl_Gfx_Entity *subobj, int index) { if (!EINA_DBL_EQ(pd->curr.pos, 0.0)) return EINA_FALSE; - Efl_Gfx_Entity *existing = NULL; - - existing = eina_list_nth(pd->content_list, index); - pd->content_list = eina_list_prepend_relative(pd->content_list, subobj, existing); - - pd->cnt++; - if (pd->curr.page >= index) pd->curr.page++; - - if (pd->transition) - efl_page_transition_update(pd->transition, pd->curr.pos); - else efl_canvas_object_clip_set(subobj, pd->backclip); - - if (pd->indicator) + if (index > pd->cnt) { - efl_page_indicator_pack(pd->indicator, index); - efl_page_indicator_update(pd->indicator, pd->curr.pos); + return EINA_FALSE; + } + else if (index == pd->cnt) + { + _efl_ui_pager_efl_pack_linear_pack_end(obj, pd, subobj); + } + else + { + Efl_Gfx_Entity *existing = NULL; + + existing = eina_list_nth(pd->content_list, index); + pd->content_list = eina_list_prepend_relative( + pd->content_list, subobj, existing); + + pd->cnt++; + if (pd->curr.page >= index) pd->curr.page++; + + if (pd->transition) + efl_page_transition_update(pd->transition, pd->curr.pos); + else efl_canvas_object_clip_set(subobj, pd->backclip); + + if (pd->indicator) + { + efl_page_indicator_pack(pd->indicator, index); + efl_page_indicator_update(pd->indicator, pd->curr.pos); + } } return EINA_TRUE;