efl_ui/active_view: fix object destruction
authorMike Blumenkrantz <zmike@samsung.com>
Wed, 19 Jun 2019 18:05:55 +0000 (14:05 -0400)
committerJongmin Lee <jm105.lee@samsung.com>
Wed, 26 Jun 2019 01:39:04 +0000 (10:39 +0900)
commitb3f353e6478ed096fffef48dbbc80c2de97e1102
tree0a27e26e73400fee99492ab1b20ce5d2323d4a22
parent3b7b4547396e06212f741a1ca9e80196411419c4
efl_ui/active_view: fix object destruction

when the activeview is being destroyed, we can skip a lot of steps in
unregistering widgets due to hierarchy-enforced deletion and class
chaining of destructors.

on the flip side, we also need to be cautious of triggering codepaths that
will perpetuate object lifecycles past when they should be destroyed and
trigger unwanted behavior.

for this case, when the activeview is being destroyed we can simply efl_del
all the contents to reuse existing callbacks, and then we can skip doing
all the update propagation through activeview subcomponents since those will
be destroyed presently. also, these subcomponents already handle subobject
destruction with callbacks, so they'll automatically clean everything up.

probably.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9125
src/lib/elementary/efl_ui_active_view_container.c