On Tue, 26 Apr 2016 18:40:26 +0100 Tom Hacohen <t...@osg.samsung.com> said:

> That is exactly what I said. Carsten also wants to introduce this in Eo. 
> I don't like it.
> 
> We finally have a proper object lifetime with refcounting, destructors 
> and what not. The object shouldn't die unless it's dead. If for some 
> reason you want to hide it immediately when killing it, by all means do 
> it, but don't make it the awkward norm that deviates from the clean life 
> cycle.

this led to bugs. like garbage on screen where objects were deleted by the
parent but kept alive because of refs etc.

a del is different to an unref. a del is explicitly stating the lifespan of
this object is over by whoever is in charge. it may stay alive due to refs -
but it shouldn't stay VISIBLE.

elm objects will del their children on destruction of the parent. if a ref
keeps the child alive it should not be visible. someone shouldn't have to
remember to hide THEN del every time.

del in eo is different to unref. it immediately removes from parent (which
then implicitly causes an unref). by the same token objects that are deleted in
the ui should not be visible after that. living - yes (depending on refs).
visible - no. so in eo land if i del - i would have removed from parent but the
obj would still be around so as long as a ref is around the object will be
there in the canvas visible creating visual junk even though i del()'ed it.

relying on visibility to stay around because of refs is conflating refs to mean
also visibility. relying on this is not good. it's actually quite bad. an unref
would do this as desired. it would not affect visibility, JUST references and
thus lifespan. a del is different as already argued by you before in eo. i also
argued that a del is stronger than an unref. and for the visual this would then
imply visibility has to be set to false on del.

> --
> Tom.
> 
> On 26/04/16 18:11, Mike Blumenkrantz wrote:
> > This commit broke things by triggering an immediate hide call on objects
> > which were expecting to receive a deferred call. For example, any time
> > evas_object_ref() is used to preserve an object lifetime and then
> > evas_object_del() is called before the unref, the object will now be hidden
> > regardless of user intent.
> >
> > This seems wrong to me; hiding during the object destructor is fine, but
> > enforcing hide on delete (which may or may not result in immediate
> > destruction) will cause unwanted behaviors.
> >
> > On Tue, Apr 26, 2016 at 12:46 PM Carsten Haitzler <ras...@rasterman.com>
> > wrote:
> >
> >> On Tue, 26 Apr 2016 16:24:08 +0000 Mike Blumenkrantz
> >> <michael.blumenkra...@gmail.com> said:
> >>
> >>> FYI this broke a LOT of things in enlightenment, and I'd guess it will
> >> also
> >>> break a lot of user applications too.
> >>
> >> the commit or fix broke thigns or the fact that things were not hidde
> >> before
> >> on object_del due to the move to eo?
> >>
> >>> On Sat, Apr 23, 2016 at 10:07 AM Carsten Haitzler <ras...@rasterman.com>
> >>> wrote:
> >>>
> >>>> raster pushed a commit to branch master.
> >>>>
> >>>>
> >>>>
> >> http://git.enlightenment.org/core/efl.git/commit/?id=df2b31b63eaed894601ba8126d1f43f07edb6332
> >>>>
> >>>> commit df2b31b63eaed894601ba8126d1f43f07edb6332
> >>>> Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
> >>>> Date:   Sat Apr 23 23:06:13 2016 +0900
> >>>>
> >>>>      evas - legacy evas_object_del - always hide obj regardless of refs
> >>>>
> >>>>      if an object iot reffed or not hide on del. it should have been
> >> this
> >>>>      way before eo. eoifications i think messed a few things up.
> >>>>
> >>>>      this does bring up an issue... in eo we have no way to explicitly
> >> do
> >>>>      stuff on eo_del regardless of references at the time. this needs
> >> to be
> >>>>      solved.
> >>>>
> >>>>      @fix
> >>>> ---
> >>>>   src/lib/evas/canvas/evas_object_main.c | 1 +
> >>>>   1 file changed, 1 insertion(+)
> >>>>
> >>>> diff --git a/src/lib/evas/canvas/evas_object_main.c
> >>>> b/src/lib/evas/canvas/evas_object_main.c
> >>>> index 6a1983f..8b9710a 100644
> >>>> --- a/src/lib/evas/canvas/evas_object_main.c
> >>>> +++ b/src/lib/evas/canvas/evas_object_main.c
> >>>> @@ -725,6 +725,7 @@ evas_object_del(Evas_Object *eo_obj)
> >>>>      Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj,
> >> MY_CLASS);
> >>>>
> >>>>      if (!obj) return;
> >>>> +   evas_object_hide(eo_obj);
> >>>>      evas_object_async_block(obj);
> >>>>      if (obj->delete_me || obj->eo_del_called) return;
> >>>>      if (obj->ref > 0)
> >>>>
> >>>> --
> >>>>
> >>>>
> >>>>
> >>>
> >> ------------------------------------------------------------------------------
> >>> Find and fix application performance issues faster with Applications
> >> Manager
> >>> Applications Manager provides deep performance insights into multiple
> >> tiers of
> >>> your business applications. It resolves application problems quickly and
> >>> reduces your MTTR. Get your free trial!
> >>> https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
> >>> _______________________________________________
> >>> enlightenment-devel mailing list
> >>> enlightenment-devel@lists.sourceforge.net
> >>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >>>
> >>
> >>
> >> --
> >> ------------- Codito, ergo sum - "I code, therefore I am" --------------
> >> The Rasterman (Carsten Haitzler)    ras...@rasterman.com
> >>
> >>
> > ------------------------------------------------------------------------------
> > Find and fix application performance issues faster with Applications Manager
> > Applications Manager provides deep performance insights into multiple tiers
> > of your business applications. It resolves application problems quickly and
> > reduces your MTTR. Get your free trial!
> > https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
> > _______________________________________________
> > enlightenment-devel mailing list
> > enlightenment-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >
> 
> 
> ------------------------------------------------------------------------------
> Find and fix application performance issues faster with Applications Manager
> Applications Manager provides deep performance insights into multiple tiers of
> your business applications. It resolves application problems quickly and
> reduces your MTTR. Get your free trial!
> https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to