Don't emit add events during inital scan.

SVN revision: 29456
This commit is contained in:
Sebastian Dransfeld 2007-04-10 07:18:51 +00:00
parent e7107630db
commit 838a4883b7
1 changed files with 30 additions and 21 deletions

View File

@ -49,7 +49,7 @@ struct Efreet_Util_Desktop
};
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 @@ efreet_util_cache_fill(void *data)
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 @@ efreet_util_cache_fill(void *data)
}
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 @@ efreet_util_cache_add(const char *path, const char *file_id, int priority)
ud = ecore_hash_get(desktop_by_file_id, file_id);
if (!ud)
{
Efreet_Event_Desktop_Change *ev;
if (event)
{
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);
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);
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;
if (event)
{
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);
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 @@ efreet_util_monitor_cb(void *data, Ecore_File_Monitor *monitor __UNUSED__,
/* 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);