diff --git a/src/bin/efreet/efreetd_cache.c b/src/bin/efreet/efreetd_cache.c index e1896e72c8..ca049ad2e6 100644 --- a/src/bin/efreet/efreetd_cache.c +++ b/src/bin/efreet/efreetd_cache.c @@ -735,6 +735,8 @@ cache_exe_data_cb(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) Eina_Bool update = EINA_FALSE; if ((ev->lines) && (*ev->lines->line == 'c')) update = EINA_TRUE; + if (!desktop_exists) + send_signal_desktop_cache_build(); desktop_exists = EINA_TRUE; send_signal_desktop_cache_update(update); } diff --git a/src/bin/efreet/efreetd_ipc.c b/src/bin/efreet/efreetd_ipc.c index c66b447bf9..2c483c5a79 100644 --- a/src/bin/efreet/efreetd_ipc.c +++ b/src/bin/efreet/efreetd_ipc.c @@ -184,6 +184,12 @@ send_signal_desktop_cache_update(Eina_Bool update) _broadcast(ipc, 3 /* desktop cache update */, update, NULL, 0); } +void +send_signal_desktop_cache_build(void) +{ + _broadcast(ipc, 1 /* desktop cache build */, 1, NULL, 0); +} + Eina_Bool ipc_init(void) { diff --git a/src/bin/efreet/efreetd_ipc.h b/src/bin/efreet/efreetd_ipc.h index 288f311add..6508f8f7b4 100644 --- a/src/bin/efreet/efreetd_ipc.h +++ b/src/bin/efreet/efreetd_ipc.h @@ -3,6 +3,7 @@ void send_signal_icon_cache_update(Eina_Bool update); void send_signal_desktop_cache_update(Eina_Bool update); +void send_signal_desktop_cache_build(void); Eina_Bool ipc_init(void); Eina_Bool ipc_shutdown(void);