From 714611a0da07e4dff809572a18e3c0c2191b1478 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 6 Feb 2013 14:54:23 +0000 Subject: [PATCH] fix efm cache listener to only activate (once) on icon update instead of desktop update since this is the only one which will matter, also only update the icon image instead of the entire thing SVN revision: 83684 --- ChangeLog | 1 + NEWS | 1 + src/bin/e_fm.c | 20 ++++---------------- 3 files changed, 6 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index bd67543ea..36649b672 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,7 @@ * added e_widget_on_disable_hook_set * added option for preventing all keyboard layout changes * moved "allow windows above fullscreen windows" option to geometry settings dialog + * fix filemanager efreet cache listeners and updates 2013-02-05 Mike Blumenkrantz diff --git a/NEWS b/NEWS index 9fc6316d4..728050ef2 100644 --- a/NEWS +++ b/NEWS @@ -155,3 +155,4 @@ Fixes: * fix button toggling in personal app launchers dialog * fix bug where edge flips would stop functioning after dragging to an invalid edge containing a shelf * moved "allow windows above fullscreen windows" option to geometry settings dialog + * fix filemanager efreet cache listeners and updates diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index a84d16101..05c8a75f0 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -165,7 +165,6 @@ struct _E_Fm2_Smart_Data E_Fm2_Icon *iop_icon; Eina_List *handlers; - Ecore_Event_Handler *efreet_cache_update; Efreet_Desktop *desktop; }; @@ -1125,9 +1124,6 @@ e_fm2_path_set(Evas_Object *obj, const char *dev, const char *path) if ((m->volume->efm_mode != EFM_MODE_USING_HAL_MOUNT) && (!sd->mount->mounted)) return; } } - if (sd->efreet_cache_update) - ecore_event_handler_del(sd->efreet_cache_update); - sd->efreet_cache_update = NULL; if (!sd->realpath) return; if (!sd->mount || sd->mount->mounted) @@ -1667,8 +1663,8 @@ e_fm2_icons_update(Evas_Object *obj) if (ic->realized) { - _e_fm2_icon_unrealize(ic); - _e_fm2_icon_realize(ic); + E_FN_DEL(evas_object_del, ic->obj_icon); + _e_fm2_icon_icon_set(ic); } } e_fm2_custom_file_flush(); @@ -4560,12 +4556,7 @@ _e_fm2_icon_fill(E_Fm2_Icon *ic, E_Fm2_Finfo *finf) } if (_e_fm2_file_is_desktop(ic->info.file)) - { - _e_fm2_icon_desktop_load(ic); - if (!ic->sd->efreet_cache_update) - ic->sd->efreet_cache_update = - ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_UPDATE, (Ecore_Event_Handler_Cb)_e_fm2_icon_cache_update, ic->sd->obj); - } + _e_fm2_icon_desktop_load(ic); if (cf) { @@ -8392,7 +8383,7 @@ _e_fm2_smart_add(Evas_Object *obj) evas_object_resize(obj, 0, 0); E_LIST_HANDLER_APPEND(sd->handlers, E_EVENT_CONFIG_ICON_THEME, _e_fm2_cb_theme, sd->obj); - E_LIST_HANDLER_APPEND(sd->handlers, EFREET_EVENT_DESKTOP_CACHE_BUILD, _e_fm2_icon_cache_update, sd->obj); + E_LIST_HANDLER_APPEND(sd->handlers, EFREET_EVENT_ICON_CACHE_UPDATE, _e_fm2_icon_cache_update, sd->obj); _e_fm2_list = eina_list_append(_e_fm2_list, sd->obj); } @@ -8407,9 +8398,6 @@ _e_fm2_smart_del(Evas_Object *obj) E_FREE_LIST(sd->handlers, ecore_event_handler_del); - if (sd->efreet_cache_update) - ecore_event_handler_del(sd->efreet_cache_update); - _e_fm2_client_monitor_list_end(obj); if (sd->realpath) _e_fm2_client_monitor_del(sd->id, sd->realpath); _e_fm2_live_process_end(obj);