Enlightenment CVS committal

Author  : englebass
Project : e17
Module  : libs/efreet

Dir     : e17/libs/efreet/src/lib


Modified Files:
        efreet_utils.c 


Log Message:
Don't emit add events during inital scan.

===================================================================
RCS file: /cvs/e/e17/libs/efreet/src/lib/efreet_utils.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -3 -r1.29 -r1.30
--- efreet_utils.c      9 Apr 2007 12:16:09 -0000       1.29
+++ efreet_utils.c      10 Apr 2007 07:18:51 -0000      1.30
@@ -49,7 +49,7 @@
 };
 
 static int  efreet_util_cache_fill(void *data);
-static void efreet_util_cache_add(const char *path, const char *file_id, int 
priority);
+static void efreet_util_cache_add(const char *path, const char *file_id, int 
priority, int event);
 static void efreet_util_cache_remove(const char *path, const char *file_id, 
int priority);
 static void efreet_util_cache_reload(const char *path, const char *file_id, 
int priority);
 static void efreet_util_cache_dir_free(void *data);
@@ -485,7 +485,7 @@
                 ecore_list_append(fill->dirs, dir);
             }
             else
-                efreet_util_cache_add(buf, file_id, fill->current->priority);
+                efreet_util_cache_add(buf, file_id, fill->current->priority, 
0);
         }
         if (!file)
         {
@@ -503,7 +503,7 @@
 }
 
 static void
-efreet_util_cache_add(const char *path, const char *file_id, int priority)
+efreet_util_cache_add(const char *path, const char *file_id, int priority, int 
event)
 {
     Efreet_Desktop *desktop;
     Efreet_Util_Desktop *ud;
@@ -517,29 +517,38 @@
     ud = ecore_hash_get(desktop_by_file_id, file_id);
     if (!ud)
     {
-        Efreet_Event_Desktop_Change *ev;
-
-        ud = NEW(Efreet_Util_Desktop, 1);
-        ud->priority = priority;
-        ud->desktop = desktop;
-        ecore_hash_set(desktop_by_file_id, (void 
*)ecore_string_instance(file_id), ud);
+        if (event)
+        {
+            Efreet_Event_Desktop_Change *ev;
 
-        ev = NEW(Efreet_Event_Desktop_Change, 1);
-        ev->current = desktop;
-        ev->change = EFREET_DESKTOP_CHANGE_ADD;
-        ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, NULL, NULL);
+            ud = NEW(Efreet_Util_Desktop, 1);
+            ud->priority = priority;
+            ud->desktop = desktop;
+            ecore_hash_set(desktop_by_file_id, (void 
*)ecore_string_instance(file_id), ud);
+
+            ev = NEW(Efreet_Event_Desktop_Change, 1);
+            ev->current = desktop;
+            ev->change = EFREET_DESKTOP_CHANGE_ADD;
+            ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, NULL, NULL);
+        }
+        else
+            ecore_hash_set(desktop_by_file_id, (void 
*)ecore_string_instance(file_id), ud);
     }
     else if (priority < ud->priority)
     {
-        Efreet_Event_Desktop_Change *ev;
-
-        ev = NEW(Efreet_Event_Desktop_Change, 1);
-        ev->current = desktop;
-        ev->previous = ud->desktop;
-        ev->change = EFREET_DESKTOP_CHANGE_UPDATE;
-        ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, NULL, NULL);
+        if (event)
+        {
+            Efreet_Event_Desktop_Change *ev;
 
-        ud->desktop = desktop;
+            ev = NEW(Efreet_Event_Desktop_Change, 1);
+            ev->current = desktop;
+            ev->previous = ud->desktop;
+            ev->change = EFREET_DESKTOP_CHANGE_UPDATE;
+            ud->desktop = desktop;
+            ecore_event_add(EFREET_EVENT_DESKTOP_CHANGE, ev, NULL, NULL);
+        }
+        else
+            ud->desktop = desktop;
     }
     if (!ecore_hash_get(file_id_by_desktop_path, desktop->orig_path))
         ecore_hash_set(file_id_by_desktop_path,
@@ -839,7 +848,7 @@
             /* Ignore */
             break;
         case ECORE_FILE_EVENT_CREATED_FILE:
-            efreet_util_cache_add(path, file_id, em->priority);
+            efreet_util_cache_add(path, file_id, em->priority, 1);
             break;
         case ECORE_FILE_EVENT_CREATED_DIRECTORY:
             efreet_util_monitor(path, file_id, em->priority);



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to