From 70ed1d3def8b5211c469865307e3f55a1126a6be Mon Sep 17 00:00:00 2001 From: Sebastian Dransfeld Date: Tue, 16 Aug 2011 12:46:47 +0000 Subject: [PATCH] e: Ignore efreet cache update on no change SVN revision: 62507 --- src/bin/e_border.c | 5 ++++- src/bin/e_configure.c | 8 ++++++-- src/bin/e_order.c | 5 ++++- src/modules/conf_applications/e_int_config_defapps.c | 6 +++++- src/modules/everything/evry_plug_apps.c | 7 +++++-- src/modules/ibar/e_mod_main.c | 5 ++++- src/modules/illume-home/e_mod_main.c | 6 +++++- 7 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/bin/e_border.c b/src/bin/e_border.c index df5c3cc9d..adaa6e5f7 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -5638,11 +5638,14 @@ _e_border_cb_sync_alarm(void *data __UNUSED__, static Eina_Bool _e_border_cb_efreet_cache_update(void *data __UNUSED__, int ev_type __UNUSED__, - void *ev __UNUSED__) + void *event) { + Efreet_Event_Cache_Update *ev = event; Eina_List *l; E_Border *bd; + if (!ev->changed) return ECORE_CALLBACK_PASS_ON; + /* mark all borders for desktop/icon updates */ EINA_LIST_FOREACH(borders, l, bd) { diff --git a/src/bin/e_configure.c b/src/bin/e_configure.c index f707292ba..568023ea9 100644 --- a/src/bin/e_configure.c +++ b/src/bin/e_configure.c @@ -399,12 +399,16 @@ _e_configure_efreet_desktop_update(void) } static Eina_Bool -_e_configure_cb_efreet_desktop_cache_update(void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__) +_e_configure_cb_efreet_desktop_cache_update(void *data __UNUSED__, int type __UNUSED__, void *event) { + Efreet_Event_Cache_Update *ev = event; + + if (!ev->changed) return ECORE_CALLBACK_PASS_ON; + _e_configure_efreet_desktop_cleanup(); if (update_job) ecore_job_del(update_job); update_job = ecore_job_add(_configure_job, NULL); - return 1; + return ECORE_CALLBACK_PASS_ON;; } static void diff --git a/src/bin/e_order.c b/src/bin/e_order.c index 95f848057..c2bbb3d2a 100644 --- a/src/bin/e_order.c +++ b/src/bin/e_order.c @@ -278,11 +278,14 @@ _e_order_save(E_Order *eo) } static Eina_Bool -_e_order_cb_efreet_cache_update(void *data __UNUSED__, int ev_type __UNUSED__, void *ev __UNUSED__) +_e_order_cb_efreet_cache_update(void *data __UNUSED__, int ev_type __UNUSED__, void *event) { + Efreet_Event_Cache_Update *ev = event; Eina_List *l; E_Order *eo; + if (!ev->changed) return ECORE_CALLBACK_PASS_ON; + /* reread all .order files */ EINA_LIST_FOREACH(orders, l, eo) { diff --git a/src/modules/conf_applications/e_int_config_defapps.c b/src/modules/conf_applications/e_int_config_defapps.c index a108376ce..306bdf5d4 100644 --- a/src/modules/conf_applications/e_int_config_defapps.c +++ b/src/modules/conf_applications/e_int_config_defapps.c @@ -204,8 +204,12 @@ _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) } static Eina_Bool -_desks_update(void *data, int ev_type __UNUSED__, void *ev __UNUSED__) +_desks_update(void *data, int ev_type __UNUSED__, void *event) { + Efreet_Event_Cache_Update *ev = event; + + if (!ev->changed) return ECORE_CALLBACK_PASS_ON; + E_Config_Dialog_Data *cfdata = data; Efreet_Desktop *desk; EINA_LIST_FREE(cfdata->desks, desk) diff --git a/src/modules/everything/evry_plug_apps.c b/src/modules/everything/evry_plug_apps.c index 3d2edd2c0..3b86e6cc5 100644 --- a/src/modules/everything/evry_plug_apps.c +++ b/src/modules/everything/evry_plug_apps.c @@ -1000,14 +1000,17 @@ _run_executable(Evry_Action *act) /***************************************************************************/ static Eina_Bool -_desktop_cache_update(void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__) +_desktop_cache_update(void *data __UNUSED__, int type __UNUSED__, void *event) { + Efreet_Event_Cache_Update *ev = event; Efreet_Desktop *d; + if (!ev->changed) return ECORE_CALLBACK_PASS_ON; + EINA_LIST_FREE(apps_cache, d) efreet_desktop_unref(d); - return EINA_TRUE; + return ECORE_CALLBACK_PASS_ON; } static int diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index e93ccf29f..e0c120784 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -1314,11 +1314,14 @@ e_modapi_save(E_Module *m __UNUSED__) } static Eina_Bool -_ibar_cb_config_icons(__UNUSED__ void *data, __UNUSED__ int ev_type, __UNUSED__ void *ev) +_ibar_cb_config_icons(__UNUSED__ void *data, __UNUSED__ int ev_type, void *event) { + Efreet_Event_Cache_Update *ev = event; const Eina_List *l; Instance *inst; + if (!ev->changed) return ECORE_CALLBACK_PASS_ON; + EINA_LIST_FOREACH(ibar_config->instances, l, inst) { const Eina_List *l2; diff --git a/src/modules/illume-home/e_mod_main.c b/src/modules/illume-home/e_mod_main.c index 1cca793da..fa4a36666 100644 --- a/src/modules/illume-home/e_mod_main.c +++ b/src/modules/illume-home/e_mod_main.c @@ -561,8 +561,12 @@ _il_home_cb_selected(void *data, Evas_Object *obj __UNUSED__, void *event __UNUS } static Eina_Bool -_il_home_desktop_cache_update(void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__) +_il_home_desktop_cache_update(void *data __UNUSED__, int type __UNUSED__, void *event) { + Efreet_Event_Cache_Update *ev = event; + + if (!ev->changed) return ECORE_CALLBACK_PASS_ON; + if (defer) ecore_timer_del(defer); defer = ecore_timer_add(0.5, _il_home_update_deferred, NULL); return ECORE_CALLBACK_PASS_ON;