diff --git a/src/lib/elementary/elm_list.c b/src/lib/elementary/elm_list.c index 17464df64e..227315df99 100644 --- a/src/lib/elementary/elm_list.c +++ b/src/lib/elementary/elm_list.c @@ -851,6 +851,7 @@ _items_fix(Evas_Object *obj) } _elm_list_walk(obj, sd); // watch out "return" before unwalk! + sd->fixing_now = EINA_TRUE; eina_array_step_set(&walk, sizeof (walk), 8); @@ -1036,6 +1037,7 @@ _items_fix(Evas_Object *obj) efl_unref(eo_it); } + sd->fixing_now = EINA_FALSE; _elm_list_unwalk(obj, sd); //focus highlight in_theme is set by list item theme. @@ -1046,12 +1048,17 @@ _items_fix(Evas_Object *obj) static void _size_hints_changed_cb(void *data, Evas *e EINA_UNUSED, - Evas_Object *obj EINA_UNUSED, + Evas_Object *obj, void *event_info EINA_UNUSED) { ELM_LIST_DATA_GET(data, sd); + ELM_WIDGET_DATA_GET_OR_RETURN(data, wd); if (sd->delete_me) return; + if (sd->fixing_now) + { + if ((obj != wd->resize_obj) && (obj != sd->box)) return; + } _items_fix(data); elm_layout_sizing_eval(data); } diff --git a/src/lib/elementary/elm_widget_list.h b/src/lib/elementary/elm_widget_list.h index cc642a29e0..707f170e92 100644 --- a/src/lib/elementary/elm_widget_list.h +++ b/src/lib/elementary/elm_widget_list.h @@ -64,6 +64,7 @@ struct _Elm_List_Data Eina_Bool mouse_down : 1; /**< a flag that mouse is down on the list at the moment. this flag is set to true on mouse and reset to false on mouse up */ Eina_Bool item_loop_enable : 1; /**< value whether item loop feature is enabled or not. */ Eina_Bool item_looping_on : 1; + Eina_Bool fixing_now : 1; }; struct _Elm_List_Item_Data