> This PR fixes an issue on macOS with a system menu bar, that happens when a 
> dialog is shown while a menu from the system menu bar is also showing.
> 
> Currently the menubar is removed whenever the stage loses focus, but that 
> causes a broken state in the menu (as reported in 
> https://bugs.openjdk.org/browse/JDK-8335541) as the dialog showing prevents 
> for a clean tear down of the menubar. And even if there were no issues, there 
> is actually no need of destroying and recreating the same menubar all over 
> again, since nothing really changed (the dialog doesn't have a menubar on its 
> own, and shares the very same one from its owner stage).
> 
> A test has been added, that fails before this patch and passes with it. 
> Another minor test has been included, just to give some details about what 
> happens when a menu titled exactly `"Help"` is added to the system menu bar. 
> It works before and after the patch.
> 
> While adding the test, I noticed that there were failures when the menu was 
> hidden:
> 
> SystemMenuBarHelpMenuTest STANDARD_ERROR
>     Exception in thread "JavaFX Application Thread" 
> java.lang.IllegalStateException: Not on FX application thread; currentThread 
> = JavaFX Application Thread
>         at 
> javafx.graphics@27-internal/com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:282)
>         at 
> javafx.graphics@27-internal/com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:480)
>         at 
> javafx.controls@27-internal/javafx.scene.control.Menu.hide(Menu.java:428)
>         at 
> javafx.graphics@27-internal/com.sun.javafx.tk.quantum.GlassMenuEventHandler.handleMenuClosed(GlassMenuEventHandler.java:46)
>         at 
> javafx.graphics@27-internal/com.sun.glass.ui.Menu.notifyMenuClosed(Menu.java:196)
> 
> so I wrapped the calls in `Menu::notifyMenuClosed` and  
> `Menu::notifyMenuClosed`  with ` Utils::runOnFxThread`.

Jose Pereda has updated the pull request incrementally with one additional 
commit since the last revision:

  Address feedback

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

Changes:
  - all: https://git.openjdk.org/jfx/pull/2107/files
  - new: https://git.openjdk.org/jfx/pull/2107/files/d1936012..f190552b

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jfx&pr=2107&range=02
 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=2107&range=01-02

  Stats: 21 lines in 1 file changed: 6 ins; 4 del; 11 mod
  Patch: https://git.openjdk.org/jfx/pull/2107.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/2107/head:pull/2107

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

Reply via email to