diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index 4cbf725cfb..737be8141b 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -1003,6 +1003,7 @@ _elm_entry_efl_ui_widget_theme_apply(Eo *obj, Elm_Entry_Data *sd) elm_widget_theme_object_set (obj, sd->scr_edje, "scroller", "entry", style); + elm_interface_scrollable_reset_signals(obj); _elm_entry_background_switch(sd->entry_edje, sd->scr_edje); str = edje_object_data_get(sd->scr_edje, "focus_highlight"); diff --git a/src/lib/elementary/elm_interface_scrollable.c b/src/lib/elementary/elm_interface_scrollable.c index 8a2c390f9f..7130efbd94 100644 --- a/src/lib/elementary/elm_interface_scrollable.c +++ b/src/lib/elementary/elm_interface_scrollable.c @@ -4027,6 +4027,21 @@ _scroll_event_object_detach(Evas_Object *obj) _elm_scroll_mouse_move_event_cb, sid); } +EOLIAN static void +_elm_interface_scrollable_reset_signals(Eo *obj EINA_UNUSED, Elm_Scrollable_Smart_Interface_Data *sid) +{ + sid->go_up = sid->go_down = sid->go_right = sid->go_left = EINA_FALSE; + + edje_object_signal_emit(sid->edje_obj, "elm,action,hide,up", "elm"); + edje_object_signal_emit(sid->edje_obj, "elm,action,hide,down", "elm"); + edje_object_signal_emit(sid->edje_obj, "elm,action,hide,right", "elm"); + edje_object_signal_emit(sid->edje_obj, "elm,action,hide,left", "elm"); + edje_object_signal_emit(sid->edje_obj, "elm,action,hide,vbar", "elm"); + edje_object_signal_emit(sid->edje_obj, "elm,action,hide,hbar", "elm"); + + _elm_scroll_scroll_bar_visibility_adjust(sid); +} + EOLIAN static void _elm_interface_scrollable_objects_set(Eo *obj, Elm_Scrollable_Smart_Interface_Data *sid, Evas_Object *edje_object, Evas_Object *hit_rectangle) { @@ -4039,10 +4054,7 @@ _elm_interface_scrollable_objects_set(Eo *obj, Elm_Scrollable_Smart_Interface_Da sid->edje_obj = edje_object; - edje_object_signal_emit(sid->edje_obj, "elm,action,hide,up", "elm"); - edje_object_signal_emit(sid->edje_obj, "elm,action,hide,down", "elm"); - edje_object_signal_emit(sid->edje_obj, "elm,action,hide,right", "elm"); - edje_object_signal_emit(sid->edje_obj, "elm,action,hide,left", "elm"); + elm_interface_scrollable_reset_signals(obj); if (sid->event_rect) _scroll_event_object_detach(obj); diff --git a/src/lib/elementary/elm_interface_scrollable.eo b/src/lib/elementary/elm_interface_scrollable.eo index cec1536c10..2c911b8091 100644 --- a/src/lib/elementary/elm_interface_scrollable.eo +++ b/src/lib/elementary/elm_interface_scrollable.eo @@ -647,6 +647,9 @@ mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Focus enable: bool; [[True to enable looping.]] } } + reset_signals { + [[Call this if you have changed the group of the object passed to @.objects]] + } } implements { class.constructor;