RFR: 8313424: JavaFX controls in the title bar (Preview) [v84]

Markus Mack mmack at openjdk.org
Thu Jun 12 21:21:50 UTC 2025


On Thu, 12 Jun 2025 19:39:30 GMT, Michael Strauß <mstrauss at openjdk.org> wrote:

>> Implementation of [`StageStyle.EXTENDED`](https://gist.github.com/mstr2/0befc541ee7297b6db2865cc5e4dbd09).
>
> Michael Strauß has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 108 commits:
> 
>  - Fix full-screen bug
>  - Merge branch 'master' into feature/extended-window
>  - only dispose ViewSceneOverlay when non-null
>  - Rename default window button style classes
>  - Set the scene root as the parent of the overlay node
>  - rename WindowManager to DesktopEnvironment
>  - enable preview feature system properties for tests
>  - javadoc fix
>  - fix memory leak in ViewScene
>  - Merge branch 'master' into feature/extended-window
>  - ... and 98 more: https://git.openjdk.org/jfx/compare/72c1c21a...3fdc465f

I left some comments, will re-approve if you decide to change anything. Testing looks good.

modules/javafx.graphics/src/main/java/javafx/scene/Parent.java line 1932:

> 1930:         // When we have a scene overlay (like the full-screen notification message or default window buttons
> 1931:         // of an extended stage), the scene root is the parent of the overlay node. However, the overlay node
> 1932:         // is not contained in the scene root's children list, because it is not a publicly accessibly part of

minor: accessibly -> accessible

modules/javafx.graphics/src/main/java/javafx/scene/Parent.java line 1935:

> 1933:         // the scene graph. When this method is called on the root node, we need to check whether the supposed
> 1934:         // child is actually contained in the children list.
> 1935:         if (!childSet.contains(node)) {

My tests confirm that the issue occurs when `setChildDirty` is called on the overlay node. This method may also be called from `childIncluded`and `childExcluded` which seems to be triggered when a node's visibility changes. If this doesn't happen the fix looks fine. Alternative may be to move the check inside `setChildDirty`.

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

Marked as reviewed by mmack (Author).

PR Review: https://git.openjdk.org/jfx/pull/1605#pullrequestreview-2922633419
PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r2143644730
PR Review Comment: https://git.openjdk.org/jfx/pull/1605#discussion_r2143657673


More information about the openjfx-dev mailing list