diff --git a/src/bin/e_fileman.c b/src/bin/e_fileman.c index 547e04b65..ff73a0447 100644 --- a/src/bin/e_fileman.c +++ b/src/bin/e_fileman.c @@ -72,7 +72,7 @@ e_fileman_new(E_Container *con) e_win_resize_callback_set(fileman->win, _e_fileman_cb_resize); e_win_resize(fileman->win, 640, 480); - e_fm_init(); // this needs to move to e's global init + evas_event_freeze(fileman->evas); fileman->smart = e_fm_add(fileman->evas); e_fm_e_win_set(fileman->smart, fileman->win); @@ -84,7 +84,9 @@ e_fileman_new(E_Container *con) fileman->event_handlers = evas_list_append(fileman->event_handlers, ecore_event_handler_add(E_EVENT_FM_RECONFIGURE, _e_fileman_reconf_cb, - fileman)); + fileman)); + evas_event_thaw(fileman->evas); + return fileman; } @@ -125,7 +127,10 @@ _e_fileman_cb_resize(E_Win *win) fileman = win->data; evas_object_resize(fileman->main, win->w, win->h); - e_fm_geometry_virtual_get(fileman->smart, &w, &h); + e_fm_geometry_virtual_get(fileman->smart, &w, &h); + + evas_event_freeze(fileman->evas); + if (h > win->h) edje_object_part_swallow(fileman->main, "vscrollbar", fileman->vscrollbar); else @@ -133,6 +138,8 @@ _e_fileman_cb_resize(E_Win *win) edje_object_part_unswallow(fileman->main, fileman->vscrollbar); evas_object_hide(fileman->vscrollbar); } + + evas_event_thaw(fileman->evas); } static void @@ -162,7 +169,9 @@ _e_fileman_reconf_cb(void *data, int type, void *event) fileman = data; ev = event; - + + return; + evas_event_freeze(fileman->evas); if (ev->h > fileman->win->h) diff --git a/src/bin/e_fileman_smart.c b/src/bin/e_fileman_smart.c index 35b788e48..31cb0297a 100644 --- a/src/bin/e_fileman_smart.c +++ b/src/bin/e_fileman_smart.c @@ -525,8 +525,6 @@ _e_fm_smart_add(Evas_Object *object) sd->icon_info.h = 48; sd->icon_info.x_space = 15; sd->icon_info.y_space = 15; - - e_thumb_init(); sd->monitor = NULL; sd->file_offset = 0; @@ -652,9 +650,7 @@ _e_fm_smart_del(Evas_Object *object) evas_object_del(sd->bg); free(sd->dir); - free(sd); - - e_thumb_shutdown(); + free(sd); } static void diff --git a/src/bin/e_main.c b/src/bin/e_main.c index f4669a447..f108ba9ed 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -731,6 +731,8 @@ _e_main_screens_init(void) if (!e_desk_init()) return 0; if (!e_gadman_init()) return 0; if (!e_menu_init()) return 0; + if (!e_thumb_init()) return 0; + if (!e_fm_init()) return 0; num = 0; roots = ecore_x_window_root_list(&num); @@ -785,6 +787,8 @@ _e_main_screens_init(void) static int _e_main_screens_shutdown(void) { + e_fm_shutdown(); + e_thumb_shutdown(); e_win_shutdown(); e_border_shutdown(); e_focus_shutdown(); diff --git a/src/bin/e_thumb.c b/src/bin/e_thumb.c index 648db0f12..78fe306a6 100644 --- a/src/bin/e_thumb.c +++ b/src/bin/e_thumb.c @@ -31,7 +31,7 @@ e_thumb_init(void) int e_thumb_shutdown(void) { - free(thumb_path); + E_FREE(thumb_path); return 1; }