Make children life update in BDL-load #1542
The issue that sparked this: ppy/osu#2496
This is expecting two things:
(1) Is fulfilled by
A similar change as proposed in this PR was submitted some ~6 months ago (#1072) but then reverted (#1083). The reasoning was that some elements were broken (https://streamable.com/6pwqf, ppy/osu#1366). Although these elements are not broken with the same changes as in the original PR, I chose to go down a different route and maintain that "children are not alive or loaded before their parent is loaded".
There are a few significant changes here:
Additionally, I think the following will result in some discussion:
It's hard to define exactly what to test with this. Obviously I've tested that it fixes the issue that sparked this, but I've also gone through all visual tests (osu! and framework-side) and found nothing breaking.
This changes two things: 1) We generally derive CompositeDrawable and add hierarchies in load(), this will cause those children to now potentially turn alive if they need to be. Previously only children added during non-bdl-load would turn alive during bdl-load. 2) Similar to (1), drawables added during derived bdl-loads that should be alive will now get loaded.