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
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to