yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=871c7db5bfaac2f71af18d1192b4bac975086002
commit 871c7db5bfaac2f71af18d1192b4bac975086002 Author: Yakov Goldberg <yako...@samsung.com> Date: Mon Apr 6 11:28:51 2015 +0300 Fix a bug which caused "invalid ref" message Was trying to call eo_do on deleted object --- src/bin/egui_gui/dnd.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bin/egui_gui/dnd.c b/src/bin/egui_gui/dnd.c index 5e05af0..6ee6d97 100644 --- a/src/bin/egui_gui/dnd.c +++ b/src/bin/egui_gui/dnd.c @@ -16,6 +16,7 @@ typedef struct Eo *image; /* image for DnD icon. */ Eo *obj; /*object, where drag starts */ Eo *drag_window_obj; /* Object inside drag window. neede to hide it. */ + Eo *drag_window_obj_wref; const Gui_Widget *wdg; /* let's think about it as about DnD data. */ void (*_drag_start_cb)(const Gui_Widget *wdg, const Eo *obj); @@ -78,7 +79,7 @@ dnd_drag_wdg_get() void dnd_drag_window_object_visibility_set(Eina_Bool visibility) { - eo_do(_dnd_info.drag_info->drag_window_obj, efl_gfx_visible_set(visibility)); + eo_do(_dnd_info.drag_info->drag_window_obj_wref, efl_gfx_visible_set(visibility)); } static void @@ -330,6 +331,7 @@ _drag_factory_real_object_create(void *data, Evas_Object *parent, Evas_Coord *xo eo_do(ic, efl_gfx_visible_set(EINA_TRUE), elm_obj_widget_part_text_set(NULL, drag_obj_class_name)); di->drag_window_obj = ic; + eo_do(di->drag_window_obj, eo_wref_add(&(di->drag_window_obj_wref))); return ic; } @@ -389,6 +391,7 @@ _drag_widget_object_create(void *data, Evas_Object *parent, Evas_Coord *xoff, Ev if (yoff) *yoff = cur_y_global; di->drag_window_obj = ic = dnd_drag_obj_create(di->wdg, parent); + eo_do(di->drag_window_obj, eo_wref_add(&(di->drag_window_obj_wref))); return ic; } --