parent
207f5dc447
commit
95d6e3390f
|
@ -274,29 +274,31 @@ efreet_desktop_init(void)
|
||||||
EFREET_EVENT_CACHE_UPDATE = ecore_event_type_new();
|
EFREET_EVENT_CACHE_UPDATE = ecore_event_type_new();
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), "%s/.efreet", efreet_home_dir_get());
|
snprintf(buf, sizeof(buf), "%s/.efreet", efreet_home_dir_get());
|
||||||
if (!ecore_file_mkpath(buf)) goto edd_error;
|
if (!ecore_file_mkpath(buf)) goto cache_error;
|
||||||
|
|
||||||
if (efreet_cache_update)
|
if (efreet_cache_update)
|
||||||
{
|
{
|
||||||
|
efreet_desktop_exe_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
|
||||||
|
efreet_desktop_exe_cb, NULL);
|
||||||
|
if (!efreet_desktop_exe_handler) goto cache_error;
|
||||||
|
|
||||||
cache_monitor = ecore_file_monitor_add(buf,
|
cache_monitor = ecore_file_monitor_add(buf,
|
||||||
efreet_desktop_cache_update,
|
efreet_desktop_cache_update,
|
||||||
NULL);
|
NULL);
|
||||||
|
if (!cache_monitor) goto handler_error;
|
||||||
|
|
||||||
efreet_desktop_listen_changes();
|
efreet_desktop_listen_changes();
|
||||||
|
|
||||||
if (!cache_monitor) goto cache_error;
|
|
||||||
ecore_exe_run(PACKAGE_BIN_DIR "/efreet_desktop_cache_create", NULL);
|
ecore_exe_run(PACKAGE_BIN_DIR "/efreet_desktop_cache_create", NULL);
|
||||||
|
|
||||||
efreet_desktop_exe_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
|
|
||||||
efreet_desktop_exe_cb, NULL);
|
|
||||||
if (!efreet_desktop_exe_handler) goto monitor_error;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cache = eet_open(efreet_desktop_cache_file(), EET_FILE_MODE_READ);
|
cache = eet_open(efreet_desktop_cache_file(), EET_FILE_MODE_READ);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
monitor_error:
|
handler_error:
|
||||||
if (cache_monitor) ecore_file_monitor_del(cache_monitor);
|
if (efreet_desktop_exe_handler) ecore_event_handler_del(efreet_desktop_exe_handler);
|
||||||
cache_error:
|
cache_error:
|
||||||
if (efreet_desktop_cache) eina_hash_free(efreet_desktop_cache);
|
if (efreet_desktop_cache) eina_hash_free(efreet_desktop_cache);
|
||||||
edd_error:
|
edd_error:
|
||||||
|
@ -2359,6 +2361,7 @@ efreet_desktop_update_cache(void)
|
||||||
{
|
{
|
||||||
if (!efreet_cache_update) return;
|
if (!efreet_cache_update) return;
|
||||||
|
|
||||||
|
/* TODO: Make sure we don't create a lot of execs, maybe use a timer? */
|
||||||
if (efreet_desktop_job) ecore_job_del(efreet_desktop_job);
|
if (efreet_desktop_job) ecore_job_del(efreet_desktop_job);
|
||||||
efreet_desktop_job = ecore_job_add(efreet_desktop_update_cache_job, NULL);
|
efreet_desktop_job = ecore_job_add(efreet_desktop_update_cache_job, NULL);
|
||||||
}
|
}
|
||||||
|
@ -2370,6 +2373,7 @@ efreet_desktop_update_cache_job(void *data __UNUSED__)
|
||||||
|
|
||||||
efreet_desktop_update_cache_dirs();
|
efreet_desktop_update_cache_dirs();
|
||||||
|
|
||||||
|
if (efreet_desktop_exe_lock > 0) return;
|
||||||
snprintf(file, sizeof(file), "%s/.efreet/desktop_exec.lock", efreet_home_dir_get());
|
snprintf(file, sizeof(file), "%s/.efreet/desktop_exec.lock", efreet_home_dir_get());
|
||||||
|
|
||||||
efreet_desktop_exe_lock = open(file, O_CREAT | O_RDONLY, S_IRUSR | S_IWUSR);
|
efreet_desktop_exe_lock = open(file, O_CREAT | O_RDONLY, S_IRUSR | S_IWUSR);
|
||||||
|
|
Loading…
Reference in New Issue