eunue pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=591f18f2af2ebcebd5e9d66bc20812eb3a378999
commit 591f18f2af2ebcebd5e9d66bc20812eb3a378999 Author: Jaeun Choi <jaeun12.c...@samsung.com> Date: Thu Jan 24 17:27:55 2019 +0900 efl_page_transition_scroll: fix _efl_page_transition_scroll_update() function % operator should not be used when loop is disabled --- src/lib/elementary/efl_page_transition_scroll.c | 54 ++++++++++++++----------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/src/lib/elementary/efl_page_transition_scroll.c b/src/lib/elementary/efl_page_transition_scroll.c index 19c4acd82c..fa485f18a4 100644 --- a/src/lib/elementary/efl_page_transition_scroll.c +++ b/src/lib/elementary/efl_page_transition_scroll.c @@ -347,41 +347,49 @@ _efl_page_transition_scroll_update(Eo *obj, curr->content_num = -1; curr->content = NULL; curr->visible = EINA_FALSE; - } } else { - tmp_id = (curr_page + curr->pos + cnt) % cnt; - if (curr->content_num != tmp_id) - { - if (curr->content) - { - efl_pack_unpack(curr->obj, curr->content); - efl_canvas_object_clip_set(curr->content, pd->backclip); + tmp_id = curr_page + curr->pos; + if (spd->loop == EFL_UI_PAGER_LOOP_ENABLED) + tmp_id = (tmp_id + cnt) % cnt; - curr->content_num = -1; - curr->content = NULL; - } + if ((abs(curr->pos) < cnt) && + (tmp_id >= 0) && + (tmp_id < cnt)) + { + tmp = efl_pack_content_get(spd->pager.obj, tmp_id); - if (!((spd->loop == EFL_UI_PAGER_LOOP_DISABLED) - && ((curr->pos) * (tmp_id - curr_page) < 0))) + if (curr->content != tmp) { - tmp = efl_pack_content_get(spd->pager.obj, tmp_id); - - if (tmp) + if (curr->content) { - efl_canvas_object_clip_set(curr->obj, pd->foreclip); + efl_pack_unpack(curr->obj, curr->content); + efl_canvas_object_clip_set(curr->content, pd->backclip); + } - efl_pack(curr->obj, tmp); - efl_canvas_object_clip_set(tmp, pd->foreclip); + efl_canvas_object_clip_set(curr->obj, pd->foreclip); - curr->content_num = tmp_id; - curr->content = tmp; - curr->visible = EINA_TRUE; - } + efl_pack(curr->obj, tmp); + efl_canvas_object_clip_set(tmp, pd->foreclip); + + curr->content_num = tmp_id; + curr->content = tmp; + curr->visible = EINA_TRUE; } } + else if (curr->content) + { + efl_canvas_object_clip_set(curr->obj, pd->backclip); + + efl_pack_unpack(curr->obj, curr->content); + efl_canvas_object_clip_set(curr->content, pd->backclip); + + curr->content_num = -1; + curr->content = NULL; + curr->visible = EINA_FALSE; + } } curr = target; --