From: Enlightenment C. <no...@cv...> - 2008-08-14 16:59:48
|
Enlightenment CVS committal Author : englebass Project : e17 Module : libs/efreet Dir : e17/libs/efreet/src/lib Modified Files: efreet_icon.c efreet_icon.h Log Message: ignore missing icons for 5 seconds. =================================================================== RCS file: /cvs/e/e17/libs/efreet/src/lib/efreet_icon.c,v retrieving revision 1.33 retrieving revision 1.34 diff -u -3 -r1.33 -r1.34 --- efreet_icon.c 2 Aug 2008 21:48:44 -0000 1.33 +++ efreet_icon.c 14 Aug 2008 16:59:41 -0000 1.34 @@ -344,13 +344,20 @@ if (cache) { ecore_list_remove(efreet_icon_cache); - if (!stat(cache->path, &st) && st.st_mtime == cache->lasttime) + if (!cache->path) + { + if (ecore_time_get() < (cache->lasttime + 5)) + { + ecore_list_prepend(efreet_icon_cache, cache); + return NULL; + } + } + else if (!stat(cache->path, &st) && st.st_mtime == cache->lasttime) { ecore_list_prepend(efreet_icon_cache, cache); return strdup(cache->path); } - else - efreet_icon_cache_free(cache); + efreet_icon_cache_free(cache); } theme = efreet_icon_find_theme_check(theme_name); @@ -372,17 +379,17 @@ */ if (!value) value = efreet_icon_fallback_icon(icon); + cache = NEW(Efreet_Icon_Cache, 1); + cache->key = strdup(key); if ((value) && !stat(value, &st)) { - Efreet_Icon_Cache *cache; - - cache = NEW(Efreet_Icon_Cache, 1); - cache->key = strdup(key); cache->path = strdup(value); cache->lasttime = st.st_mtime; - ecore_list_prepend(efreet_icon_cache, cache); - efreet_icon_cache_flush(); } + else + cache->lasttime = ecore_time_get(); + ecore_list_prepend(efreet_icon_cache, cache); + efreet_icon_cache_flush(); return value; } @@ -451,11 +458,11 @@ * @brief Retrieves all of the information about the given icon. */ EAPI Efreet_Icon * -efreet_icon_find(const char *theme, const char *icon, const char *size) +efreet_icon_find(const char *theme_name, const char *icon, const char *size) { char *path; - path = efreet_icon_path_find(theme, icon, size); + path = efreet_icon_path_find(theme_name, icon, size); if (path) { Efreet_Icon *icon; =================================================================== RCS file: /cvs/e/e17/libs/efreet/src/lib/efreet_icon.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- efreet_icon.h 4 Nov 2007 09:32:35 -0000 1.7 +++ efreet_icon.h 14 Aug 2008 16:59:41 -0000 1.8 @@ -170,7 +170,7 @@ EAPI char *efreet_icon_list_find(const char *theme_name, Ecore_List *icons, const char *size); -EAPI char *efreet_icon_path_find(const char *theme, +EAPI char *efreet_icon_path_find(const char *theme_name, const char *icon, const char *size); EAPI void efreet_icon_free(Efreet_Icon *icon); |