double effect_start;
Eina_Bool queue_exception : 1;
int item_count;
+ Eina_Bool reoder_moved : 1;
+ int reoder_pan_y;
+ Eina_Bool group_items_moved : 1;
};
struct _Edit_Data
it->wd->ed->reorder_item->reordering = 1;
it->wd->ed->reorder_rel = NULL;
elm_smart_scroller_hold_set(it->wd->scr, EINA_TRUE);
+ it->wd->reoder_pan_y = it->wd->pan_y;
+ it->wd->reoder_moved = EINA_TRUE;
return 0;
}
Evas_Event_Mouse_Down *ev = event_info;
Evas_Coord x, y;
+ it->wd->group_items_moved = EINA_FALSE;
it->wd->td1_x = ev->canvas.x;
it->wd->td1_y = ev->canvas.y;
if (it->wd->effect_mode && it->wd->pinchzoom_effect_mode == ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_CONTRACT_FINISH)
elm_smart_scroller_bounce_allow_set(git->wd->scr, EINA_FALSE, EINA_TRUE);
if (git->wd->pinchzoom_effect_mode == ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_CONTRACT_FINISH)
{
+ if(!git->wd->group_items_moved)
+ {
git->wd->pinch_it = git->num;
_elm_genlist_pinch_zoom_execute(git->wd->obj, 0);
+ }
+ git->wd->group_items_moved = EINA_FALSE;
}
return;
}
is_reorder = _get_space_for_reorder_item(it);
- if (is_reorder)
- it->reorder_check = 1;
- else
- it->reorder_check = 0;
-
if (it->wd->ed)
{
if (it != it->wd->ed->reorder_item && is_reorder && in > 0 && !(in % it->wd->max_items_per_block) && !itb->reoder_y)
// if (x > ow) x = ow;
// if (y > oh) y = oh;
if ((x == sd->wd->pan_x) && (y == sd->wd->pan_y)) return;
- sd->wd->pan_x = x;
- sd->wd->pan_y = y;
+
+ if(sd->wd->reoder_moved)
+ {
+ sd->wd->pan_x = x;
+ if(sd->wd->pan_y >= sd->wd->minh)
+ sd->wd->pan_y = sd->wd->minh;
+ else
+ {
+ if(sd->wd->pan_y < y )
+ sd->wd->pan_y = y + 5 + abs(sd->wd->reoder_pan_y - sd->wd->pan_y) / 100;
+ else
+ sd->wd->pan_y = y - 5 - abs(sd->wd->reoder_pan_y - sd->wd->pan_y) / 100;
+ }
+ }
+ else
+ {
+ sd->wd->pan_x = x;
+ sd->wd->pan_y = y;
+ }
evas_object_smart_changed(obj);
}
if (sd->wd->pinchzoom_effect_mode == ELM_GENLIST_ITEM_PINCHZOOM_EFFECT_CONTRACT_FINISH)
{
+ sd->wd->group_items_moved = EINA_TRUE;
sd->wd->contract_pan_y = sd->wd->pan_y;
EINA_INLIST_FOREACH(sd->wd->group_items, git)
{
{
wd->items = eina_inlist_append(wd->items, EINA_INLIST_GET(it));
it->rel = NULL;
+
}
else
{
Evas_Event_Mouse_Down *ev = event_info;
Evas_Coord x, y;
- if (!elm_genlist_item_next_get(it))
- return;
-
if (it->wd->edit_field && !it->renamed)
elm_genlist_item_rename_mode_set(it, 0);
}
it->down = 0;
+ it->wd->reoder_moved = EINA_FALSE;
if (it->wd->ed->ec->selected)
it->wd->ed->ec->selected(NULL, it, 1);
{
it->wd->ed->reorder_rel = it;
it->scrl_y+=it->wd->ed->reorder_item->h;
+ it->reorder_check = 1;
return it->wd->ed->reorder_item->h;
}
return 0;
it->wd->items = eina_inlist_remove(it->wd->items, EINA_INLIST_GET(it));
_item_block_del(it);
- if ((!next_item && !after->reorder_check) || (next_item && !after->reorder_check))
+ if ((!next_item && after->reorder_check) || (next_item && !after->reorder_check))
{
if (next_item && !after->reorder_check && it == after)
}
it->before = 1;
}
+ after->reorder_check = 0;
_item_queue(it->wd, it);
}