From a1573fbb4f679d6a3e979b1881af6fe9ee7aa7dc Mon Sep 17 00:00:00 2001 From: englebass Date: Sat, 27 Mar 2010 19:58:33 +0000 Subject: [PATCH] sync cache reload between desktop and util git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/efreet@47513 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/efreet_desktop.c | 1 + src/lib/efreet_private.h | 1 + src/lib/efreet_utils.c | 26 ++------------------------ 3 files changed, 4 insertions(+), 24 deletions(-) diff --git a/src/lib/efreet_desktop.c b/src/lib/efreet_desktop.c index 1850f9f..a605b2c 100644 --- a/src/lib/efreet_desktop.c +++ b/src/lib/efreet_desktop.c @@ -2211,6 +2211,7 @@ efreet_desktop_cache_update(void *data __UNUSED__, Ecore_File_Monitor *em __UNUS efreet_desktop_cache = eina_hash_string_superfast_new(NULL); cache = tmp; + efreet_util_desktop_cache_reload(); ecore_event_add(EFREET_EVENT_CACHE_UPDATE, ev, efreet_desktop_cache_update_free, d); return; error: diff --git a/src/lib/efreet_private.h b/src/lib/efreet_private.h index b2ec515..864a3ec 100644 --- a/src/lib/efreet_private.h +++ b/src/lib/efreet_private.h @@ -205,6 +205,7 @@ const char *efreet_desktop_environment_get(void); EAPI Eet_Data_Descriptor *efreet_desktop_edd_init(void); EAPI void efreet_desktop_edd_shutdown(Eet_Data_Descriptor *edd); +void efreet_util_desktop_cache_reload(void); 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); diff --git a/src/lib/efreet_utils.c b/src/lib/efreet_utils.c index 704403f..15b3fd4 100644 --- a/src/lib/efreet_utils.c +++ b/src/lib/efreet_utils.c @@ -35,21 +35,15 @@ static Efreet_Desktop *efreet_util_cache_find(const char *search, const char *wh static Eina_List *efreet_util_cache_list(const char *search, const char *what); static Eina_List *efreet_util_cache_glob_list(const char *search, const char *what); -static void efreet_util_cache_update(void *data, Ecore_File_Monitor *em, - Ecore_File_Event event, const char *path); - static Eina_Hash *file_id_by_desktop_path = NULL; static const char *cache_file = NULL; static Eet_File *cache = NULL; -static Ecore_File_Monitor *cache_monitor = NULL; static int init = 0; int efreet_util_init(void) { - char buf[PATH_MAX]; - if (init++) return init; _efreet_utils_log_dom = eina_log_domain_register("Efreet_util", EFREET_DEFAULT_LOG_COLOR); if (_efreet_utils_log_dom < 0) @@ -58,20 +52,10 @@ efreet_util_init(void) return 0; } - snprintf(buf, sizeof(buf), "%s/.efreet", efreet_home_dir_get()); - if (!ecore_file_mkpath(buf)) goto log_error; - cache_monitor = ecore_file_monitor_add(buf, - efreet_util_cache_update, - NULL); - cache = eet_open(efreet_desktop_util_cache_file(), EET_FILE_MODE_READ); file_id_by_desktop_path = eina_hash_string_superfast_new(EINA_FREE_CB(eina_stringshare_del)); return init; - -log_error: - eina_log_domain_unregister(_efreet_utils_log_dom); - return 0; } int @@ -81,7 +65,6 @@ efreet_util_shutdown(void) eina_log_domain_unregister(_efreet_utils_log_dom); IF_FREE_HASH(file_id_by_desktop_path); - if (cache_monitor) ecore_file_monitor_del(cache_monitor); if (cache) eet_close(cache); IF_RELEASE(cache_file); return init; @@ -602,14 +585,9 @@ efreet_util_cache_glob_list(const char *search, const char *what) return ret; } -static void -efreet_util_cache_update(void *data __UNUSED__, Ecore_File_Monitor *em __UNUSED__, - Ecore_File_Event event, const char *path) +void +efreet_desktop_util_cache_reload(void) { - if (strcmp(path, efreet_desktop_util_cache_file())) return; - if (event != ECORE_FILE_EVENT_CREATED_FILE && - event != ECORE_FILE_EVENT_MODIFIED) return; - if (cache) eet_close(cache); cache = eet_open(efreet_desktop_util_cache_file(), EET_FILE_MODE_READ); } -- 2.7.4