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);
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs