Page MenuHomePhabricator

efl-mono: Removing widgets leaves app in unstable state
Open, NormalPublic

Description

The Text Editor example app creates an Alert Popup and then tried to remove it:
https://git.enlightenment.org/tools/examples.git/tree/apps/csharp/texteditor/src/texteditor_main.cs?h=devs%2Fxartigas%2Fcsharp-tutorials#n56

I tried to remove it using SetParent(null) and Invalidate(). Both seem to work, but afterwards I get lots of errors on the console and the app is very unstable.

Among other things:

ERR<25379>:eina_safety lib/elementary/efl_ui_layout_object.c:933 _efl_ui_layout_object_efl_layout_signal_signal_emit() safety check failed: efl_invalidated_get(obj) is true

What is the official way to remove objects in efl-mono?

segfaultxavi triaged this task as Normal priority.
segfaultxavi updated the task description. (Show Details)Sep 27 2018, 8:00 AM
segfaultxavi updated the task description. (Show Details)Sep 28 2018, 9:33 AM

Managed to fix this by NOT calling Invalidate(), just SetParent(null). Everything seems to be working now, but I still would like to get confirmation from the bindings guys: What is the proper way to remove a widget in C#? In other words, how do I efl_del() now?

There still seems to be something wrong even after removing the Invalidate() call, as dismissing the popup in the updated example from D7173 shows errors like ERR<14922>:eina_safety ../../src/lib/elementary/efl_ui_layout_object.c:933 _efl_ui_layout_object_efl_layout_signal_signal_emit() safety check failed: efl_invalidated_get(obj) is true and some safety check failure afterwards (caught by the changed event handler in the example).

woohyun added a subscriber: lauromoura.

This probably will depend on T7800.