elm_object_item_del(Eo *obj)
{
Elm_Widget_Item_Data *item;
+ //TIZEN_ONLY(20200526) : synchronized item deletion for tizen 4.0 compatibility.
+ item = efl_data_scope_safe_get(obj, ELM_WIDGET_ITEM_CLASS);
- if (efl_ref_count(obj) == 1)
+ //if (efl_ref_count(obj) == 1)
+ if ((efl_ref_count(obj) == 1) || (item && item->ignore_ref))
+ //
{
// Noref already, die little item !
efl_del(obj);
return ;
}
- item = efl_data_scope_safe_get(obj, ELM_WIDGET_ITEM_CLASS);
+ //TIZEN_ONLY(20200526) : synchronized item deletion for tizen 4.0 compatibility.
+ //item = efl_data_scope_safe_get(obj, ELM_WIDGET_ITEM_CLASS);
+ //
if (!item) return ;
efl_event_callback_add(obj, EFL_EVENT_NOREF, _item_noref, NULL);
item->on_deletion = EINA_TRUE;
{
sd->aligned_item->func.func((void *)sd->aligned_item->func.data, obj, EO_OBJ(sd->aligned_item));
}
- if (sd->aligned_item && !(sd->aligned_item->base->on_deletion))
+ //TIZEN_ONLY(20200526) : synchronized item deletion for tizen 4.0 compatibility.
+ //if (sd->aligned_item && !(sd->aligned_item->base->on_deletion)))
+ if (!efl_invalidated_get(aligned) && sd->aligned_item)
+ //
{
evas_object_smart_callback_call(obj, SIG_SELECTED, EO_OBJ(sd->aligned_item));
}
Evas_Object *obj = WIDGET(it);
Elm_Genlist_Data *sd = GL_IT(it)->wsd;
Eina_Bool r = EINA_FALSE;
+ //TIZEN_ONLY(20200526) : synchronized item deletion for tizen 4.0 compatibility.
+ Evas_Object *eo_it = EO_OBJ(it);
+ //
if (elm_wdg_item_disabled_get(EO_OBJ(it))) return EINA_FALSE;
if (_is_no_select(it) || (it->decorate_it_set)) return EINA_FALSE;
}
//
evas_object_ref(obj);
- efl_ref(EO_OBJ(it));
+ //TIZEN_ONLY(20200526) : synchronized item deletion for tizen 4.0 compatibility.
+ //efl_ref(EO_OBJ(it));
+ efl_ref(eo_it);
+ //
//TIZEN_ONLY(27Mar2020): Unfreeze event fix
//
if (it->func.func) it->func.func((void *)it->func.data, obj, EO_OBJ(it));
- if ((it->base)->on_deletion)
+ //TIZEN_ONLY(20200526) : synchronized item deletion for tizen 4.0 compatibility.
+ //if ((it->base)->on_deletion)
+ if (efl_invalidated_get(eo_it))
+ //
{
r = EINA_TRUE;
goto item_deleted;
}
evas_object_smart_callback_call(WIDGET(it), SIG_SELECTED, EO_OBJ(it));
- if ((it->base)->on_deletion)
+ //TIZEN_ONLY(20200526) : synchronized item deletion for tizen 4.0 compatibility.
+ //if ((it->base)->on_deletion)
+ if (efl_invalidated_get(eo_it))
{
+ //
r = EINA_TRUE;
goto item_deleted;
}
item_deleted:
- efl_unref(EO_OBJ(it));
+ //TIZEN_ONLY(20200526) : synchronized item deletion for tizen 4.0 compatibility.
+ //efl_unref(EO_OBJ(it));
+ efl_unref(eo_it);
+ //
evas_object_unref(obj);
return r;
}
Evas_Event_Mouse_Move *ev = event_info;
Elm_Gen_Item *it = data;
Elm_Genlist_Data *sd = GL_IT(it)->wsd;
+ //TIZEN_ONLY(20200526) : synchronized item deletion for tizen 4.0 compatibility.
+ Evas_Object *eo_it = EO_OBJ(it);
+ //
if (!it->down) return;
//*******************************
evas_object_ref(obj);
- efl_ref(EO_OBJ(it));
+ //TIZEN_ONLY(20200526) : synchronized item deletion for tizen 4.0 compatibility.
+ //efl_ref(EO_OBJ(it));
+ efl_ref(eo_it);
+ //
if (!it->dragging)
{
}
/* If item magic value is changed, do not call smart callback*/
- if (!((it->base)->on_deletion))
+ //TIZEN_ONLY(20200526) : synchronized item deletion for tizen 4.0 compatibility.
+ //if (!((it->base)->on_deletion))
+ if (!efl_invalidated_get(eo_it))
+ //
{
if (it->dragging)
evas_object_smart_callback_call(WIDGET(it), SIG_DRAG, EO_OBJ(it));
}
- efl_unref(EO_OBJ(it));
+ //TIZEN_ONLY(20200526) : synchronized item deletion for tizen 4.0 compatibility.
+ //efl_unref(EO_OBJ(it));
+ efl_unref(eo_it);
+ //
evas_object_unref(obj);
}
GL_IT(it)->align = EINA_TRUE;
//
+ //TIZEN_ONLY(20200526) : synchronized item deletion for tizen 4.0 compatibility.
+ (it->base)->ignore_ref = EINA_TRUE;
+ //
+
if (it->parent)
{
if (GL_IT(it->parent)->type == ELM_GENLIST_ITEM_GROUP)