Define a new implementation system property "jdk.allowMacOSTabbedWindows" which allows users to over-ride the default JDK behaviour of disabling these
macOS provides a System Setting "Prefer tabbed windows" which forces all top-level windows of an application to open as a tab of a single top-level window. This does not work well with most Java applications and can even cause them to freeze. Consquently JDK over-rides this System Setting to disable tabbed windows. But some applications may want to use this setting, so we need a way to let them over-ride the JDK default behaviour.
Define a new implementation system property "jdk.allowMacOSTabbedWindows", to let users opt in to the Mac OS tabbed Window functionality. This property is set to false by default. It does not itself force tabbed windows, but allows JDK to follow the system default behavior.
This property has no effect on any platform other than macOS.
The choice of "jdk" prefix is in large part because OpenJFX intends to adopt the same prefix and there is precedent for this in other cases where AWT/2D/Swing and OpenJFX want to behave consistently with each other.
This system property will not be documented but will be provided on request.
Tabbed windows for JDK applications on macOS can be allowed by specifying -Djdk.allowMacOSTabbedWindows=true/TRUE/tRUE/TrUE..
- csr of
JDK-8256465 [macos] Java frame and dialog presented full screen freeze application