The UI binding system connects model properties to UI element properties. Bindings can be created arbitrarily, meaning that it's possible for two bindings to inadvertently set the same property.
One such bug has been found and will be fixed in the scene manager.
This is a conflict, and should not be done. However, it'd be great if there was a way to programmatically catch this. Based on discussion, a few possibilities are:
- Wrapping UI element properties in a templated type that tracks dirtiness, and bark if the property is dirtied more than once per frame. Pro: This could catch any setter, not just bindings. Con: Conflicts may not be per-frame - two bindings could fire in different frames, and still conflict.
- Log mutators of setters. Bark if two different mutators are seen.
Comment 1 by cjgrant@chromium.org
, Apr 4 2018