> This pull request fixes the system menu bar on MacOS when combining windows 
> of Swing and JavaFX.
> 
> # Behavior before
> 
> If for some reason You needed to initialize AWT before JavaFX and You wanted 
> to install the system menu bar from the JavaFX side, this wasn't possible. 
> This issue is persistent even when You didn't open a Swing window. 
> 
> One scenario where this kind of issue happens is when You use install4j (see 
> https://www.ej-technologies.com/install4j). In this case AWT is initialized 
> by install4j and therefore You can't use the JavaFX system menu bar anymore.
> 
> 
> # Behavior after
> 
> The fix allows JavaFX to install a system menu bar even if it is initialized 
> after AWT. This is achieved by only changing code inside JavaFX. Each JavaFX 
> window stores the previously installed menu bar when gaining focus and will 
> restore this menu bar if the focus was lost. This only happens if the system 
> menu bar installed by the JavaFX window is still unchanged.
> 
> 
> # Tests
> 
> This PR introduces tests for the system menu bar in addition to verifying its 
> own behavior / changes. The tests include single- and multi-window tests 
> while interacting with Swing. The tests ensure that the menu bar stays the 
> same for each window, no matter how You switch focus between them.
> 
> 
> # Additional benifits 
> 
> This fix is not specifically for AWT, but allows JavaFX to interact much more 
> compatibly with other frameworks that make use of the system menu bar.
> 
> 
> # Review from AWT
> 
> In the previous PR related to this one, the comment was made that the folks 
> from AWT should take a look at this fix. It would be great and much 
> appreciated if someone could initiate it.
> 
> 
> # Add disable flag?
> 
> We could also add a flag to prevent JavaFX from installing a system menu bar 
> for users who have found other fixes for their projects / setups. This could 
> be used to restore the previous behavior when AWT is initialized first.
> 
> 
> Co-Author: @FlorianKirmaier

Pabulaner IV has updated the pull request incrementally with one additional 
commit since the last revision:

  8359108: Mac - When Swing starts First, native application menu doesn't work 
for JavaFX

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

Changes:
  - all: https://git.openjdk.org/jfx/pull/1904/files
  - new: https://git.openjdk.org/jfx/pull/1904/files/358f670d..c5b5af07

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jfx&pr=1904&range=05
 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=1904&range=04-05

  Stats: 134 lines in 9 files changed: 79 ins; 2 del; 53 mod
  Patch: https://git.openjdk.org/jfx/pull/1904.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1904/head:pull/1904

PR: https://git.openjdk.org/jfx/pull/1904

Reply via email to