This PR adds the necessary logic to automatically relayout unmanaged nodes when they're dirty as specified by the documentation. Relevant sections (emphasis mine):
### Parent::requestLayout > If this parent is either a layout root or unmanaged, then it will be added > directly to the **scene's dirty layout list**, otherwise requestParentLayout > will be invoked. ### Node::managedProperty > If a managed node's layoutBounds changes, it will **automatically trigger > relayout** up the scene-graph to the **nearest layout root** And: > If an **unmanaged node** is of type `Parent`, it will act as a **"layout > root"** >From this I conclude that: - A layout root is any node that is unmanaged (and of type `Parent`), or a Scene's root node - Changes requiring layout in managed children that have an unmanaged parent somewhere in their ancestry should cause layout to be triggered for the affected areas - Automatic relayout is triggered either by scheduling a pulse (for scene roots) or by adding a layout root to the Scene's dirty layout list Note that Scene currently does not have a dirty layout list. Note also that the documentation for `requestLayout` probably meant to say "**scene** root or unmanaged" instead of "**layout** root or unmanaged." ------------- Commit messages: - Add unmanaged nodes in need of layout to a dirty layout root list Changes: https://git.openjdk.org/jfx/pull/1874/files Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1874&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8365637 Stats: 44 lines in 3 files changed: 43 ins; 0 del; 1 mod Patch: https://git.openjdk.org/jfx/pull/1874.diff Fetch: git fetch https://git.openjdk.org/jfx.git pull/1874/head:pull/1874 PR: https://git.openjdk.org/jfx/pull/1874