diff --git a/legacy/efreet/src/lib/efreet_icon.c b/legacy/efreet/src/lib/efreet_icon.c index 673845c0ce..71ebef7e8f 100644 --- a/legacy/efreet/src/lib/efreet_icon.c +++ b/legacy/efreet/src/lib/efreet_icon.c @@ -673,6 +673,7 @@ efreet_icon_lookup_icon(Efreet_Icon_Theme *theme, const char *icon_name, char *icon = NULL, *tmp = NULL; Efreet_Icon_Theme_Directory *dir; double minimal_size = INT_MAX; + unsigned int ret_size; if (!theme || (theme->paths == NULL) || !icon_name || !size) return NULL; @@ -699,7 +700,9 @@ efreet_icon_lookup_icon(Efreet_Icon_Theme *theme, const char *icon_name, double distance; distance = efreet_icon_directory_size_distance(dir, size); - if (distance >= minimal_size) continue; + if (distance > minimal_size) continue; + // prefer downsizing + if ((distance == minimal_size) && (size < ret_size)) continue; tmp = efreet_icon_lookup_directory(theme, dir, icon_name); @@ -708,6 +711,7 @@ efreet_icon_lookup_icon(Efreet_Icon_Theme *theme, const char *icon_name, FREE(icon); icon = tmp; minimal_size = distance; + ret_size = size; } }