RFR: 8365637: Unmanaged nodes are not added to the Scene's dirty layout list

John Hendrikx jhendrikx at openjdk.org
Fri Aug 22 12:41:58 UTC 2025


On Fri, 22 Aug 2025 07:38:43 GMT, Alessadro Parisi <duke at openjdk.org> wrote:

> > The documentation however seems quite clear that step 3 is also supposed to be done.
> 
> So, as of now unmanaged parents do not layout their children? I thought they did.

@palexdev You are right, I missed something... thanks for taking an extensive look.

My testing branch for this problem has a fix applied for [JDK-8360940](https://bugs.openjdk.org/browse/JDK-8360940), but it now looks like that fix is incomplete.

What **should** happen when an unmanaged node is encountered is that changes in any of its children should not require re-layout of its parents (as an unmanaged node, all container parents ignore it and don't take it into account into their computations, so there is no point to re-layout the parents).

However, due to a bug, code in `Node` will always walk up the layout tree to the scene root and will mark all ancestors as needing layout.  The code that does this is not very subtle and if a layout is in progress it can sometimes cause the layout flags to go into a bad state (this is what [JDK-8360940](https://bugs.openjdk.org/browse/JDK-8360940) fixes).  With that fix applied however, `Node` no longer always walks up the entire tree (and it shouldn't, as an unmanaged node is not affecting its parents).  This however causes unmanaged parents to no longer be laid out at all, and this PR is supposed to fix that in turn.

So, what it looks like is that this PR and the fix for [JDK-8360940](https://bugs.openjdk.org/browse/JDK-8360940) need to be a single PR.

Sorry for the bad PR, I will move this to draft and provide a complete fix.

-------------

PR Comment: https://git.openjdk.org/jfx/pull/1874#issuecomment-3214245362


More information about the openjfx-dev mailing list