diff --git a/legacy/efreet/src/lib/efreet_cache.c b/legacy/efreet/src/lib/efreet_cache.c index 86ff36e469..f750ffacb0 100644 --- a/legacy/efreet/src/lib/efreet_cache.c +++ b/legacy/efreet/src/lib/efreet_cache.c @@ -118,7 +118,6 @@ efreet_cache_init(void) NULL); if (!cache_monitor) goto error; - efreet_desktop_changes_listen(); #if 0 efreet_icon_changes_listen(); #endif diff --git a/legacy/efreet/src/lib/efreet_desktop.c b/legacy/efreet/src/lib/efreet_desktop.c index 5e156b0f57..68e31f136c 100644 --- a/legacy/efreet/src/lib/efreet_desktop.c +++ b/legacy/efreet/src/lib/efreet_desktop.c @@ -91,6 +91,7 @@ static Eina_Bool efreet_desktop_x_fields_save(const Eina_Hash *hash, void *fdata); static int efreet_desktop_environment_check(Efreet_Desktop *desktop); +static void efreet_desktop_changes_listen(void); static void efreet_desktop_changes_listen_recursive(const char *path); static void efreet_desktop_changes_monitor_add(const char *path); static void efreet_desktop_changes_cb(void *data, Ecore_File_Monitor *em, @@ -125,6 +126,7 @@ efreet_desktop_init(void) EFREET_DESKTOP_TYPE_DIRECTORY = efreet_desktop_type_add("Directory", NULL, NULL, NULL); + efreet_desktop_changes_listen(); return 1; } @@ -800,7 +802,7 @@ error: return 0; } -void +static void efreet_desktop_changes_listen(void) { int dirsfd = -1; @@ -808,6 +810,8 @@ efreet_desktop_changes_listen(void) char *path; struct stat st; + if (!efreet_cache_update) return; + change_monitors = eina_hash_string_superfast_new(EINA_FREE_CB(ecore_file_monitor_del)); if (!change_monitors) return; diff --git a/legacy/efreet/src/lib/efreet_private.h b/legacy/efreet/src/lib/efreet_private.h index c8cf910795..1c8d6620df 100644 --- a/legacy/efreet/src/lib/efreet_private.h +++ b/legacy/efreet/src/lib/efreet_private.h @@ -209,7 +209,6 @@ EAPI const char *efreet_desktop_util_cache_file(void); EAPI const char *efreet_desktop_cache_file(void); EAPI const char *efreet_desktop_cache_dirs(void); int efreet_desktop_write_cache_dirs_file(void); -void efreet_desktop_changes_listen(void); void efreet_cache_desktop_update(void); #ifdef ICON_CACHE