diff --git a/src/bin/elementary/test_ctxpopup.c b/src/bin/elementary/test_ctxpopup.c index fbc9042c53..187dba84e0 100644 --- a/src/bin/elementary/test_ctxpopup.c +++ b/src/bin/elementary/test_ctxpopup.c @@ -210,7 +210,7 @@ _list_item_cb5(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_U btn = elm_button_add(sc); elm_object_text_set(btn, "Enlightenment"); - evas_object_size_hint_min_set(btn, 140, 140); + evas_object_size_hint_min_set(btn, 150, 150); elm_object_content_set(sc, btn); diff --git a/src/lib/elementary/elm_interface_scrollable.c b/src/lib/elementary/elm_interface_scrollable.c index 8d22b544c6..38501b0658 100644 --- a/src/lib/elementary/elm_interface_scrollable.c +++ b/src/lib/elementary/elm_interface_scrollable.c @@ -732,6 +732,35 @@ _elm_scroll_scroll_bar_v_visibility_adjust( return scroll_v_vis_change; } +static inline void +_elm_scroll_scroll_bar_auto_visibility_adjust(Elm_Scrollable_Smart_Interface_Data *sid) +{ + int sw = 0, sh = 0, w, h; + + if ((sid->vbar_flags != ELM_SCROLLER_POLICY_AUTO) || + (sid->hbar_flags != ELM_SCROLLER_POLICY_AUTO) || + !sid->hbar_visible || !sid->vbar_visible) return; + + if (!sid->content && !sid->extern_pan) return; + + w = sid->content_info.w; + h = sid->content_info.h; + efl_gfx_size_get(sid->edje_obj, &sw, &sh); + + // Adjust when the content may fit but the bars are visible. The if() test + // does not guarantee that the content will fit (offsets & margins depend + // on the theme). + if ((w <= sw) && (h <= sh)) + { + sid->hbar_visible = EINA_FALSE; + sid->vbar_visible = EINA_FALSE; + _elm_scroll_scroll_bar_h_visibility_apply(sid); + _elm_scroll_scroll_bar_v_visibility_apply(sid); + _elm_scroll_scroll_bar_h_visibility_adjust(sid); + _elm_scroll_scroll_bar_v_visibility_adjust(sid); + } +} + static void _elm_scroll_scroll_bar_visibility_adjust( Elm_Scrollable_Smart_Interface_Data *sid) @@ -746,6 +775,8 @@ _elm_scroll_scroll_bar_visibility_adjust( _elm_scroll_scroll_bar_h_visibility_adjust(sid); _elm_scroll_scroll_bar_v_visibility_adjust(sid); } + + _elm_scroll_scroll_bar_auto_visibility_adjust(sid); } static void