From bb9a787366b051a2aa14b86d2d633545e13f82d4 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Tue, 25 Aug 2009 06:08:54 +0000 Subject: [PATCH] 'everythin' - del import cb handler - fix scrolling in thumb view SVN revision: 41967 --- .../everything/actions/evry_plug_wallpaper.c | 22 ++++++++++++++++--- .../everything/views/evry_plug_view_thumb.c | 6 ++--- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/modules/everything/actions/evry_plug_wallpaper.c b/src/modules/everything/actions/evry_plug_wallpaper.c index ac823e8a2..1a2830c81 100644 --- a/src/modules/everything/actions/evry_plug_wallpaper.c +++ b/src/modules/everything/actions/evry_plug_wallpaper.c @@ -42,7 +42,7 @@ struct _Item static void _import_edj_gen(Import *import); static int _import_cb_edje_cc_exit(void *data, int type, void *event); - +static Import *import = NULL; static Evry_Plugin *plugin; @@ -172,7 +172,13 @@ _action(Evry_Plugin *plugin, const Evry_Item *item) if (p->prev && p->prev->file) { - Import *import; + if (import) + { + if (import->exe_handler) + ecore_event_handler_del(import->exe_handler); + E_FREE(import); + } + Item *it = (Item*) item; import = E_NEW(Import, 1); import->method = it->method; @@ -198,6 +204,7 @@ _init(void) evry_plugin_register(plugin, 10); + return EINA_TRUE; } @@ -205,6 +212,13 @@ static void _shutdown(void) { EVRY_PLUGIN_FREE(plugin); + + if (import) + { + if (import->exe_handler) + ecore_event_handler_del(import->exe_handler); + E_FREE(import); + } } @@ -404,6 +418,9 @@ _import_cb_edje_cc_exit(void *data, int type, void *event) ev = event; import = data; + + if (!ev->exe) return 1; + if (ev->exe != import->exe) return 1; if (ev->exit_code != 0) @@ -423,7 +440,6 @@ _import_cb_edje_cc_exit(void *data, int type, void *event) } E_FREE(fdest); - E_FREE(import); return 0; } diff --git a/src/modules/everything/views/evry_plug_view_thumb.c b/src/modules/everything/views/evry_plug_view_thumb.c index 7aca371bb..813785ee9 100644 --- a/src/modules/everything/views/evry_plug_view_thumb.c +++ b/src/modules/everything/views/evry_plug_view_thumb.c @@ -233,7 +233,6 @@ _e_smart_reconfigure_do(void *data) oy = 0; if (sd->h > sd->ch) oy = (sd->h - sd->ch) / 2; - if (sd->sel_item && !sd->update) { int y, h; @@ -242,7 +241,7 @@ _e_smart_reconfigure_do(void *data) e_scrollframe_child_pos_get(sd->view->sframe, NULL, &y); e_scrollframe_child_viewport_size_get(sd->view->sframe, NULL, &h); - if ((it->y + it->h) - y >= h - it->h) + if ((it->y + it->h) - y > h) e_scrollframe_child_pos_set(sd->view->sframe, 0, it->y - (2 - sd->zoom) * it->h); else if (it->y < y) e_scrollframe_child_pos_set(sd->view->sframe, 0, it->y); @@ -604,7 +603,6 @@ _pan_item_add(Evas_Object *obj, Evry_Item *item) if (_check_item(item)) it->get_thumb = EINA_TRUE; - evry_item_ref(item); _e_smart_reconfigure(obj); @@ -643,7 +641,7 @@ _pan_item_select(Evas_Object *obj, Item *it) if (sd->zoom < 2) edje_object_signal_emit(sd->sel_item->frame, "e,state,selected", "e"); - sd->update = EINA_FALSE; + /* sd->update = EINA_FALSE; */ if (sd->idle_enter) ecore_idle_enterer_del(sd->idle_enter); sd->idle_enter = ecore_idle_enterer_add(_e_smart_reconfigure_do, obj);