efl_page_transition_scroll: fix _efl_page_transition_scroll_update() function

% operator should not be used when loop is disabled
This commit is contained in:
Jaeun Choi 2019-01-24 17:27:55 +09:00
parent 4dc8712aba
commit 591f18f2af
1 changed files with 33 additions and 25 deletions

View File

@ -347,41 +347,49 @@ _efl_page_transition_scroll_update(Eo *obj,
curr->content_num = -1; curr->content_num = -1;
curr->content = NULL; curr->content = NULL;
curr->visible = EINA_FALSE; curr->visible = EINA_FALSE;
} }
} }
else else
{ {
tmp_id = (curr_page + curr->pos + cnt) % cnt; tmp_id = curr_page + curr->pos;
if (curr->content_num != tmp_id) if (spd->loop == EFL_UI_PAGER_LOOP_ENABLED)
tmp_id = (tmp_id + cnt) % cnt;
if ((abs(curr->pos) < cnt) &&
(tmp_id >= 0) &&
(tmp_id < cnt))
{ {
if (curr->content) tmp = efl_pack_content_get(spd->pager.obj, tmp_id);
if (curr->content != tmp)
{ {
efl_pack_unpack(curr->obj, curr->content); if (curr->content)
efl_canvas_object_clip_set(curr->content, pd->backclip);
curr->content_num = -1;
curr->content = NULL;
}
if (!((spd->loop == EFL_UI_PAGER_LOOP_DISABLED)
&& ((curr->pos) * (tmp_id - curr_page) < 0)))
{
tmp = efl_pack_content_get(spd->pager.obj, tmp_id);
if (tmp)
{ {
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);
curr->content_num = tmp_id;
curr->content = tmp;
curr->visible = EINA_TRUE;
} }
efl_canvas_object_clip_set(curr->obj, pd->foreclip);
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; curr = target;