#define GL_IT(_it) (_it->item)
#define IS_ROOT_PARENT_IT(_it) \
- ((_it->group) || (GL_IT(_it)->items && GL_IT(_it)->expanded_depth == 0)) \
+ ((_it->group) || ((GL_IT(_it)->items && GL_IT(_it)->expanded_depth == 0) \
+ &&(!(GL_IT(_it)->type & ELM_GENLIST_ITEM_TREE)))) \
static const Evas_Smart_Interface *_smart_interfaces[] =
{
#if GENLIST_FX_SUPPORT
static Eina_Bool _elm_genlist_fx_capture(Evas_Object *obj, int level);
static void _elm_genlist_fx_play(Evas_Object *obj);
-static void _elm_genlist_fx_clear(Evas_Object *obj);
+static void _elm_genlist_fx_clear(Evas_Object *obj, Eina_Bool force);
static void _elm_genlist_proxy_item_del(const Elm_Object_Item *item);
#endif
// 1. Add resize callback for multiline entry.
// 2. Do not unrealize it for focus issue
// ps. Only for entry because of performnace
- if (!strcmp("elm_layout", evas_object_type_get(ic)))
- {
- // If editfield style, it can have entry.
- const char *group;
- edje_object_file_get(elm_layout_edje_get(ic), NULL, &group);
- if (group && !strncmp("elm/layout/editfield/", group, 20))
- {
- Eina_List *ll;
- Evas_Object *subobj;
- Eina_List *subobjs = elm_widget_sub_object_list_get(ic);
- EINA_LIST_FOREACH(subobjs, ll, subobj)
- {
- if (!strcmp("elm_entry", evas_object_type_get(subobj)) &&
- !elm_entry_single_line_get(subobj))
- it->item->unrealize_disabled = EINA_TRUE;
- }
- }
- }
- else if (!strcmp("elm_entry", evas_object_type_get(ic)) &&
- !elm_entry_single_line_get(ic))
- it->item->unrealize_disabled = EINA_TRUE;
-
+ if (!strcmp("elm_entry", evas_object_type_get(ic)))
+ it->item->unrealize_disabled = EINA_TRUE;
}
#endif
#if 0
// 1. Add resize callback for multiline entry.
// 2. Do not unrealize it for focus issue
// ps. Only for entry because of performnace
- if (!strcmp("elm_layout", evas_object_type_get(ic)))
+ if (!strcmp("elm_entry", evas_object_type_get(ic)))
{
- // If editfield style, it can have entry.
- const char *group;
- edje_object_file_get(elm_layout_edje_get(ic), NULL, &group);
- if (group && !strncmp("elm/layout/editfield/", group, 20))
- {
- Eina_List *ll;
- Evas_Object *subobj;
- Eina_List *subobjs = elm_widget_sub_object_list_get(ic);
- EINA_LIST_FOREACH(subobjs, ll, subobj)
- {
- if (!strcmp("elm_entry", evas_object_type_get(subobj)) &&
- !elm_entry_single_line_get(subobj))
- it->item->unrealize_disabled = EINA_TRUE;
- }
- }
- }
- else if (!strcmp("elm_entry", evas_object_type_get(ic)) &&
- !elm_entry_single_line_get(ic))
- {
- evas_object_event_callback_add
- (ic, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
- _changed_size_hints, it);
+ if (!elm_entry_single_line_get(ic))
+ evas_object_event_callback_add
+ (ic, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
+ _changed_size_hints, it);
it->item->unrealize_disabled = EINA_TRUE;
}
#endif
#if GROUP_ITEMS_FEATURE
git->item->want_realize = EINA_FALSE;
#else
- _item_unrealize(git, EINA_TRUE);
+ evas_object_hide(VIEW(git));
#endif
}
}
#if GENLIST_FX_SUPPORT
- if (sd->fx_first_captured)
- _elm_genlist_fx_clear(ELM_WIDGET_DATA(sd)->obj);
+ _elm_genlist_fx_clear(ELM_WIDGET_DATA(sd)->obj, EINA_FALSE);
#endif
return ECORE_CALLBACK_RENEW;
}
_scroll_animate_start_cb(Evas_Object *obj,
void *data __UNUSED__)
{
+#if GENLIST_FX_SUPPORT
+ _elm_genlist_fx_clear(obj, EINA_FALSE);
+#endif
evas_object_smart_callback_call(obj, SIG_SCROLL_ANIM_START, NULL);
}
_scroll_animate_stop_cb(Evas_Object *obj,
void *data __UNUSED__)
{
+#if GENLIST_FX_SUPPORT
+ _elm_genlist_fx_clear(obj, EINA_FALSE);
+#endif
evas_object_smart_callback_call(obj, SIG_SCROLL_ANIM_STOP, NULL);
}
}
static void
-_elm_genlist_fx_clear(Evas_Object *obj)
+_elm_genlist_fx_clear(Evas_Object *obj, Eina_Bool force)
{
ELM_GENLIST_DATA_GET(obj, sd);
Proxy_Item *pi;
Elm_Gen_Item *it;
+ if ((!force) && (!sd->fx_first_captured)) return;
+
EINA_LIST_FREE(sd->capture_before_items, pi)
{
if ((pi->it) && (GL_IT(pi->it))) GL_IT(pi->it)->has_proxy_it = EINA_FALSE;
#if GENLIST_FX_SUPPORT
if (sd->fx_mode)
{
- _elm_genlist_fx_clear(obj);
+ _elm_genlist_fx_clear(obj, EINA_TRUE);
sd->genlist_clearing = EINA_TRUE;
sd->rendered = EINA_FALSE;
}
#endif
#if GENLIST_FX_SUPPORT
- if (GL_IT(it)->wsd->fx_first_captured)
- _elm_genlist_fx_clear(ELM_WIDGET_DATA(GL_IT(it)->wsd)->obj);
+ _elm_genlist_fx_clear(ELM_WIDGET_DATA(GL_IT(it)->wsd)->obj, EINA_FALSE);
#endif
if (GL_IT(it)->wsd->update_job) ecore_job_del(GL_IT(it)->wsd->update_job);
}
}
#if GENLIST_FX_SUPPORT
- if (sd->fx_first_captured)
- _elm_genlist_fx_clear(ELM_WIDGET_DATA(sd)->obj);
-
+ _elm_genlist_fx_clear(ELM_WIDGET_DATA(sd)->obj, EINA_FALSE);
#endif
if (sd->calc_job) ecore_job_del(sd->calc_job);
sd->calc_job = ecore_job_add(_calc_job, sd);
_elm_genlist_fx_items_make(obj);
if (!eina_list_count(sd->fx_items) || (sd->queue))
{
- _elm_genlist_fx_clear(obj);
+ _elm_genlist_fx_clear(obj, EINA_TRUE);
return;
}
{
elm_transit_effect_translation_add(fi->trans, fi->from.x, fi->from.y, fi->to.x, fi->to.y);
elm_transit_effect_color_add(fi->trans, 0, 0, 0, 0, 255, 255, 255, 255);
+ if ((!sd->pinch_zoom_mode) && (!sd->expanded_item))
+ elm_transit_effect_zoom_add(fi->trans, 0.8, 1.0);
}
else if (fi->type == ELM_GEN_ITEM_FX_TYPE_DEL)
{
+ _item_unhighlight(fi->it);
elm_transit_effect_translation_add(fi->trans, fi->from.x, fi->from.y, fi->to.x, fi->to.y);
elm_transit_effect_color_add(fi->trans, 255, 255, 255, 255, 0, 0, 0, 0);
+ if ((!sd->pinch_zoom_mode) && (!sd->expanded_item))
+ elm_transit_effect_zoom_add(fi->trans, 1.0, 0.8);
}
elm_transit_effect_add(fi->trans, _item_fx_op, fi, _item_fx_done);
elm_transit_del_cb_set(fi->trans, _item_fx_del_cb, fi);