diff --git a/legacy/elementary/src/lib/Elementary.h.in b/legacy/elementary/src/lib/Elementary.h.in index fd09a7c154..96b1ac4826 100644 --- a/legacy/elementary/src/lib/Elementary.h.in +++ b/legacy/elementary/src/lib/Elementary.h.in @@ -5087,6 +5087,14 @@ extern "C" { * @ingroup Icon */ EAPI Elm_Icon_Lookup_Order elm_icon_order_lookup_get(const Evas_Object *obj) EINA_ARG_NONNULL(1); + /** + * Enable or disable preloading of the icon + * + * @param obj The icon object + * @param disable If EINA_TRUE, preloading will be disabled + * @ingroup Icon + */ + EAPI void elm_icon_preload_set(Evas_Object *obj, Eina_Bool disable) EINA_ARG_NONNULL(1); /** * Get if the icon supports animation or not. * diff --git a/legacy/elementary/src/lib/elm_icon.c b/legacy/elementary/src/lib/elm_icon.c index 273db62700..eb909b1068 100644 --- a/legacy/elementary/src/lib/elm_icon.c +++ b/legacy/elementary/src/lib/elm_icon.c @@ -1024,3 +1024,13 @@ elm_icon_object_get(Evas_Object *obj) if (!wd) return NULL; return _els_smart_icon_object_get(wd->img); } + +EAPI void +elm_icon_preload_set(Evas_Object *obj, Eina_Bool disable) +{ + ELM_CHECK_WIDTYPE(obj, widtype); + Widget_Data *wd = elm_widget_data_get(obj); + + if (!wd) return; + _els_smart_icon_preload_set(wd->img, disable); +} diff --git a/legacy/elementary/src/lib/els_icon.c b/legacy/elementary/src/lib/els_icon.c index eb123a074c..9005f6de91 100644 --- a/legacy/elementary/src/lib/els_icon.c +++ b/legacy/elementary/src/lib/els_icon.c @@ -141,6 +141,17 @@ _els_smart_icon_file_key_set(Evas_Object *obj, const char *file, const char *key return EINA_TRUE; } +void +_els_smart_icon_preload_set(Evas_Object *obj, Eina_Bool disable) +{ + Smart_Data *sd; + + sd = evas_object_smart_data_get(obj); + if ((!sd) || sd->edje) return; + evas_object_image_preload(sd->obj, disable); + sd->preloading = !disable; +} + Eina_Bool _els_smart_icon_file_edje_set(Evas_Object *obj, const char *file, const char *part) { diff --git a/legacy/elementary/src/lib/els_icon.h b/legacy/elementary/src/lib/els_icon.h index 2d1cce2ef9..641aa3d218 100644 --- a/legacy/elementary/src/lib/els_icon.h +++ b/legacy/elementary/src/lib/els_icon.h @@ -24,4 +24,4 @@ Eina_Bool _els_smart_icon_edit_get (const Evas_Object *obj); Evas_Object *_els_smart_icon_edje_get(Evas_Object *obj); void _els_smart_icon_aspect_ratio_retained_set(Evas_Object *obj, Eina_Bool retained); Eina_Bool _els_smart_icon_aspect_ratio_retained_get(const Evas_Object *obj); - +void _els_smart_icon_preload_set(Evas_Object *obj, Eina_Bool disable);