diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index 0b7c4be44..6ba15f7c0 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -1817,15 +1817,7 @@ _e_fm2_icon_mime_type_special_match(const E_Fm2_Icon *ic) static inline unsigned int _e_fm2_icon_mime_size_normalize(const E_Fm2_Icon *ic) { - const unsigned int *itr, known_sizes[] = { - 16, 22, 24, 32, 36, 48, 64, 72, 96, 128, 192, -1 - }; - unsigned int desired = _e_fm2_icon_w_get(ic->sd); - for (itr = known_sizes; *itr > 0; itr++) - if (*itr >= desired) - return *itr; - - return 256; /* largest know size? */ + return e_util_icon_size_normalize(_e_fm2_icon_w_get(ic->sd)); } /** diff --git a/src/bin/e_utils.c b/src/bin/e_utils.c index 9537d68da..84a0a2b43 100644 --- a/src/bin/e_utils.c +++ b/src/bin/e_utils.c @@ -397,13 +397,28 @@ e_util_menu_item_edje_icon_set(E_Menu_Item *mi, const char *name) return 0; } +EAPI unsigned int +e_util_icon_size_normalize(unsigned int desired) +{ + const unsigned int *itr, known_sizes[] = { + 16, 22, 24, 32, 36, 48, 64, 72, 96, 128, 192, 256, -1 + }; + for (itr = known_sizes; *itr > 0; itr++) + if (*itr >= desired) + return *itr; + + return 256; /* largest know size? */ +} + EAPI int e_util_menu_item_fdo_icon_set(E_Menu_Item *mi, const char *icon) { char *path = NULL; + unsigned int size; if ((!icon) || (!icon[0])) return 0; - path = efreet_icon_path_find(e_config->icon_theme, icon, 16); + size = e_util_icon_size_normalize(16 * e_scale); + path = efreet_icon_path_find(e_config->icon_theme, icon, size); if (!path) return 0; e_menu_item_icon_file_set(mi, path); E_FREE(path); diff --git a/src/bin/e_utils.h b/src/bin/e_utils.h index 4c904dc23..c2dd72226 100644 --- a/src/bin/e_utils.h +++ b/src/bin/e_utils.h @@ -33,6 +33,7 @@ EAPI int e_util_menu_item_edje_icon_list_set(E_Menu_Item *mi, const cha EAPI int e_util_edje_icon_check(const char *name); EAPI int e_util_edje_icon_set(Evas_Object *obj, const char *name); EAPI int e_util_menu_item_edje_icon_set(E_Menu_Item *mi, const char *name); +EAPI unsigned int e_util_icon_size_normalize(unsigned int desired); EAPI int e_util_menu_item_fdo_icon_set(E_Menu_Item *mi, const char *icon); EAPI E_Container *e_util_container_window_find(Ecore_X_Window win); EAPI E_Border *e_util_desk_border_above(E_Border *bd);