diff --git a/legacy/edje/src/lib/edje_entry.c b/legacy/edje/src/lib/edje_entry.c index 6825b4fe21..64e06ef186 100644 --- a/legacy/edje/src/lib/edje_entry.c +++ b/legacy/edje/src/lib/edje_entry.c @@ -1541,6 +1541,10 @@ _edje_entry_init(Edje *ed) void _edje_entry_shutdown(Edje *ed) { + evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_FOCUS_IN, _edje_focus_in_cb); + evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_FOCUS_OUT, _edje_focus_out_cb); + evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_KEY_DOWN, _edje_key_down_cb); + evas_object_event_callback_del(ed->obj, EVAS_CALLBACK_KEY_UP, _edje_key_up_cb); } void diff --git a/legacy/edje/src/lib/edje_load.c b/legacy/edje/src/lib/edje_load.c index 738b4b57e7..75f8a47131 100644 --- a/legacy/edje/src/lib/edje_load.c +++ b/legacy/edje/src/lib/edje_load.c @@ -281,6 +281,7 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g Eina_List *parts = NULL; Eina_List *old_swallows; int group_path_started = 0; + int entries = 0; ed = _edje_fetch(obj); if (!ed) return 0; @@ -290,6 +291,8 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g (ed->group) && (!strcmp(group, ed->group))) return 1; + //**// + _edje_entry_shutdown(ed); old_swallows = _edje_swallows_collect(ed); if (_edje_script_only(ed)) _edje_script_only_shutdown(ed); @@ -480,7 +483,10 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g if (rp->param1.description->text.id_text_source >= 0) rp->text.text_source = ed->table_parts[rp->param1.description->text.id_text_source % ed->table_parts_size]; if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE) - _edje_entry_real_part_init(rp); + { + _edje_entry_real_part_init(rp); + entries++; + } } } @@ -707,11 +713,14 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g } } } + //**// + if (entries > 0) _edje_entry_init(ed); return 1; } else return 0; ed->load_error = EDJE_LOAD_ERROR_NONE; + if (entries > 0) _edje_entry_init(ed); return 1; } diff --git a/legacy/edje/src/lib/edje_smart.c b/legacy/edje/src/lib/edje_smart.c index 1cd5dc4a19..2e26dd61f3 100644 --- a/legacy/edje/src/lib/edje_smart.c +++ b/legacy/edje/src/lib/edje_smart.c @@ -68,7 +68,7 @@ _edje_smart_add(Evas_Object *obj) evas_object_geometry_get(obj, &(ed->x), &(ed->y), &(ed->w), &(ed->h)); ed->obj = obj; _edje_edjes = eina_list_append(_edje_edjes, obj); - _edje_entry_init(ed); +//**// _edje_entry_init(ed); /* { Eina_List *l; @@ -93,7 +93,7 @@ _edje_smart_del(Evas_Object * obj) ed = evas_object_smart_data_get(obj); if (!ed) return; _edje_block_violate(ed); - _edje_entry_shutdown(ed); +//**// _edje_entry_shutdown(ed); ed->delete_me = 1; _edje_clean_objects(ed); _edje_edjes = eina_list_remove(_edje_edjes, obj);