Hello, Modern macOS apps tend to expand the client area of the window to take the entire window area including the titlebar. This is usually done by: Setting NSWindow.titlebarAppearsTransparent to true. Setting NSWindow.styleMask NSWindowStyleMaskFullSizeContentView flag.
This can be useful because it gives the app modern look, make use of all available window real-estate, and allows JavaFX developers to create completely custom windows like UNDECORATED styles without loosing the platform resize-window feature and the three window buttons. Swing supports this already using code like this: final var frame = new JFrame(); final var rootPane = frame.getRootPane(); rootPane.putClientProperty("apple.awt.fullWindowContent", true); rootPane.putClientProperty("apple.awt.transparentTitleBar", true); This can be done easily today using reflection to access non-public API to get the Stage native NSWindow handle and using FFM to change styleMask and set the titlebarAppearsTransparent property. I have created an example here (https://github.com/bahaa/jfx-transparent-window-titlebar). But this approach has the following drawbacks: It uses non-public API. JavaFX stage native window handle is available only after the stage is shown, this cause some flicker because the window style is changed after it’s shown to the user. I think JavaFX should support this out of the box. One possible solution is to introduce a new StageStyle that behaves like UNIFIED style (it falls back to DECORATED) if it’s not supported by the platform. I think something similar can be done on Windows (https://learn.microsoft.com/en-us/windows/win32/dwm/customframe) but I’m not sure about GTK. Thanks, Bahaa.