I thought you'd be interested since you previously had issues with
evas_object_del(), and raster added the hide() in there. I can't remember
the details exactly, though.

2017-10-10 23:57 GMT+09:00 Mike Blumenkrantz <michael.blumenkra...@gmail.com
>:

> Hi?
>
> On Tue, Oct 10, 2017, 6:32 AM Jean-Philippe ANDRÉ <j...@videolan.org>
> wrote:
>
> > jpeg pushed a commit to branch master.
> >
> >
> > http://git.enlightenment.org/core/efl.git/commit/?id=
> e021e25c852313463925195b1367938057734c5f
> >
> > commit e021e25c852313463925195b1367938057734c5f
> > Author: Jean-Philippe Andre <jp.an...@samsung.com>
> > Date:   Thu Sep 28 18:03:33 2017 +0900
> >
> >     evas: Override del() for evas objects
> >
> >     This makes EAPI evas_object_del() and EO API efl_del() work the same
> on
> >     evas objects, i.e. a del() implies an immediate call to hide() and
> mark
> >     the object as "delete_me".
> >
> >     If the refcount remains > 0 the object won't be actually deleted,
> thus
> >     EFL_EVENT_DEL won't be triggered. I think it would probably be a good
> >     idea to have a new event "del,request", to signal reference owners
> that
> >     this object "wants" to die.
> >
> >     Ping @raster @zmike
> > ---
> >  src/lib/evas/canvas/efl_canvas_object.eo |  1 +
> >  src/lib/evas/canvas/evas_object_main.c   | 26
> +++++++++++++++-----------
> >  2 files changed, 16 insertions(+), 11 deletions(-)
> >
> > diff --git a/src/lib/evas/canvas/efl_canvas_object.eo
> > b/src/lib/evas/canvas/efl_canvas_object.eo
> > index 61c59497dd..ac3ecd4bdc 100644
> > --- a/src/lib/evas/canvas/efl_canvas_object.eo
> > +++ b/src/lib/evas/canvas/efl_canvas_object.eo
> > @@ -662,6 +662,7 @@ abstract Efl.Canvas.Object (Efl.Object, Efl.Gfx,
> > Efl.Gfx.Stack, Efl.Animator,
> >        Efl.Object.destructor;
> >        Efl.Object.finalize;
> >        Efl.Object.provider_find;
> > +      Efl.Object.del;
> >        Efl.Object.debug_name_override;
> >        Efl.Gfx.visible { get; set; }
> >        Efl.Gfx.color { get; set; }
> > diff --git a/src/lib/evas/canvas/evas_object_main.c
> > b/src/lib/evas/canvas/evas_object_main.c
> > index d298efb478..e6f36ec280 100644
> > --- a/src/lib/evas/canvas/evas_object_main.c
> > +++ b/src/lib/evas/canvas/evas_object_main.c
> > @@ -902,17 +902,9 @@ evas_object_ref_get(const Evas_Object *eo_obj)
> >     return obj->ref;
> >  }
> >
> > -EAPI void
> > -evas_object_del(Evas_Object *eo_obj)
> > +EOLIAN static void
> > +_efl_canvas_object_efl_object_del(const Eo *eo_obj,
> > Evas_Object_Protected_Data *obj)
> >  {
> > -   if (!eo_obj) return;
> > -   MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
> > -   return;
> > -   MAGIC_CHECK_END();
> > -
> > -   Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj,
> MY_CLASS);
> > -
> > -   if (!obj) return;
> >     evas_object_async_block(obj);
> >     if (obj->delete_me || obj->efl_del_called) return;
> >     if (obj->ref > 0)
> > @@ -920,9 +912,21 @@ evas_object_del(Evas_Object *eo_obj)
> >          obj->del_ref = EINA_TRUE;
> >          return;
> >       }
> > -   evas_object_hide(eo_obj);
> > +   efl_gfx_visible_set((Eo *) eo_obj, EINA_FALSE);
> >     obj->efl_del_called = EINA_TRUE;
> > +   efl_del(efl_super(eo_obj, MY_CLASS));
> > +}
> >
> > +EAPI void
> > +evas_object_del(Evas_Object *eo_obj)
> > +{
> > +   if (!eo_obj) return;
> > +   if (!efl_isa(eo_obj, MY_CLASS))
> > +     {
> > +        ERR("Called %s on a non-evas object: %s@%p",
> > +            __FUNCTION__, efl_class_name_get(eo_obj), eo_obj);
> > +        return;
> > +     }
> >     efl_del(eo_obj);
> >  }
> >
> >
> > --
> >
> >
> >
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>



-- 
Jean-Philippe André
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to