win: Allow unref until deletion
authorJean-Philippe Andre <jp.andre@samsung.com>
Mon, 27 Nov 2017 13:24:01 +0000 (22:24 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Tue, 5 Dec 2017 01:15:40 +0000 (10:15 +0900)
This is for bindings. I wish I could actually distinguish the use case
more (between efl_add() from C and instantiation from C++).

src/lib/elementary/efl_ui_win.c

index 3a3d823..3ebbdb1 100644 (file)
@@ -5406,6 +5406,10 @@ _efl_ui_win_efl_object_constructor(Eo *obj, Efl_Ui_Win_Data *pd)
    pd->provider = efl_add(EFL_UI_FOCUS_PARENT_PROVIDER_STANDARD_CLASS, obj);
    pd->profile.available = eina_array_new(4);
 
+   // For bindings: if no parent, allow simple unref
+   if (!efl_parent_get(obj))
+     efl_allow_parent_unref_set(obj, EINA_TRUE);
+
    efl_composite_attach(obj, pd->manager);
    _efl_ui_focus_manager_redirect_events_add(pd->manager, obj);