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