diff --git a/src/lib/elementary/elc_multibuttonentry.c b/src/lib/elementary/elc_multibuttonentry.c index cf59d7738d..8a14381926 100644 --- a/src/lib/elementary/elc_multibuttonentry.c +++ b/src/lib/elementary/elc_multibuttonentry.c @@ -350,6 +350,9 @@ _elm_multibuttonentry_elm_widget_on_focus(Eo *obj, Elm_Multibuttonentry_Data *sd { if (elm_widget_focus_get(obj)) { + if (sd->focused) goto end; + sd->focused = EINA_TRUE; + // ACCESS if (_elm_config->access_mode == ELM_ACCESS_MODE_ON) goto end; @@ -373,6 +376,9 @@ _elm_multibuttonentry_elm_widget_on_focus(Eo *obj, Elm_Multibuttonentry_Data *sd } else { + if (sd->focused) goto end; + sd->focused = EINA_FALSE; + if (sd->editable) { _view_update(sd); diff --git a/src/lib/elementary/elm_widget_multibuttonentry.h b/src/lib/elementary/elm_widget_multibuttonentry.h index a6d5041718..ca8b58e03e 100644 --- a/src/lib/elementary/elm_widget_multibuttonentry.h +++ b/src/lib/elementary/elm_widget_multibuttonentry.h @@ -104,7 +104,7 @@ struct _Elm_Multibuttonentry_Data Eina_Bool last_it_select : 1; Eina_Bool editable : 1; - Eina_Bool focused : 1; + Eina_Bool focused : 1; // avoids infinite loop on focus in/out Eina_Bool label_packed : 1; Ecore_Timer *longpress_timer;