diff --git a/legacy/elementary/src/lib/elm_gengrid.c b/legacy/elementary/src/lib/elm_gengrid.c index 6462ab3e96..9c09310a9e 100644 --- a/legacy/elementary/src/lib/elm_gengrid.c +++ b/legacy/elementary/src/lib/elm_gengrid.c @@ -2028,6 +2028,8 @@ _elm_gengrid_item_del_not_serious(Elm_Gen_Item *it) if (it->selected) sd->selected = eina_list_remove(sd->selected, it); + if (sd->last_selected_item == (Elm_Object_Item *)it) + sd->last_selected_item = NULL; if (it->itc->func.del) it->itc->func.del((void *)it->base.data, WIDGET(it)); @@ -2051,8 +2053,6 @@ _elm_gengrid_item_del_serious(Elm_Gen_Item *it) ecore_job_del(sd->calc_job); sd->calc_job = ecore_job_add(sd->calc_cb, sd->obj); - if (sd->last_selected_item == (Elm_Object_Item *)it) - sd->last_selected_item = NULL; sd->item_count--; ELM_SAFE_FREE(it->item, free); diff --git a/legacy/elementary/src/lib/elm_genlist.c b/legacy/elementary/src/lib/elm_genlist.c index ef5bd063d6..8937861583 100644 --- a/legacy/elementary/src/lib/elm_genlist.c +++ b/legacy/elementary/src/lib/elm_genlist.c @@ -3227,6 +3227,12 @@ _elm_genlist_item_del_not_serious(Elm_Gen_Item *it) if (it->selected) sd->selected = eina_list_remove(sd->selected, it); + if (sd->last_focused_item == (Elm_Object_Item *)it) + sd->last_focused_item = NULL; + if (sd->focused_item == (Elm_Object_Item *)it) + sd->focused_item = NULL; + if (sd->last_selected_item == (Elm_Object_Item *)it) + sd->last_selected_item = NULL; if (it->itc->func.del) it->itc->func.del((void *)it->base.data, WIDGET(it)); @@ -3251,8 +3257,6 @@ _elm_genlist_item_del_serious(Elm_Gen_Item *it) ecore_job_del(sd->calc_job); sd->calc_job = ecore_job_add(_calc_job, sd->obj); - if (sd->last_selected_item == (Elm_Object_Item *)it) - sd->last_selected_item = NULL; sd->item_count--; ELM_SAFE_FREE(it->item, free); diff --git a/legacy/elementary/src/lib/elm_list.c b/legacy/elementary/src/lib/elm_list.c index 8df8f4844b..3b0ddd1dc8 100644 --- a/legacy/elementary/src/lib/elm_list.c +++ b/legacy/elementary/src/lib/elm_list.c @@ -1670,6 +1670,13 @@ _item_del_pre_hook(Elm_Object_Item *it) sd->items = eina_list_remove_list(sd->items, item->node); + if (sd->focused_item == (Elm_Object_Item *)it) + sd->focused_item = NULL; + if (sd->last_focused_item == (Elm_Object_Item *)it) + sd->last_focused_item = NULL; + if (sd->last_selected_item == (Elm_Object_Item *)it) + sd->last_selected_item = NULL; + evas_object_ref(obj); _elm_list_walk(sd);