-
Bug
-
Resolution: Fixed
-
P4
-
8
focusCleanup() is called after the scene has been processed for CSS Layout and peer synchronization in the current pulse. In its course it may invalidate some properties that will cause another round of processing and rendering during next pulse.
One particular scenario in which it's clear that the current order causes extra rendering is this:
a scene with a text field is fully processed and rendered in the first pulse;
when focusCleanup() is called after synchronizeSceneNodes() the focus is initialized and the text field is re-styled accordingly (with no input events so far);
the text field is properly rendered as focused only after the second pulse.
It may be quite negligible on desktop but it's a noticeable performance factor for the virtual keyboard on embedded.
One particular scenario in which it's clear that the current order causes extra rendering is this:
a scene with a text field is fully processed and rendered in the first pulse;
when focusCleanup() is called after synchronizeSceneNodes() the focus is initialized and the text field is re-styled accordingly (with no input events so far);
the text field is properly rendered as focused only after the second pulse.
It may be quite negligible on desktop but it's a noticeable performance factor for the virtual keyboard on embedded.