On Wed, 8 Apr 2026 17:22:01 GMT, Jose Pereda <[email protected]> wrote:

>> This PR adds a fix to close the popup windows on macOS when clicking over 
>> the system menu bar. 
>> 
>> According to the macOS standard behaviour for native applications, when a 
>> popup window is showing, and the user clicks on the system menu bar, the 
>> click event is consumed and the popup is closed. A second click is then 
>> required to open the system menu bar.
>> 
>> This is done by the popup windows directly, as they are NSMenu objects that 
>> enable a modal event tracking loop, capturing all events including those 
>> from the system menu bar, in order to dismiss the popup when the click is 
>> outside the window.
>> 
>> However, JavaFX just implements regular NSWindows, and there is no such 
>> event loop. Therefore, this PR adds a notification to the system menu 
>> instead. When the menu is about to open, the popup window gets a 
>> notification, which is processed to cancel the menu animation, preventing it 
>> from showing up, and also closing the popup. And then, with the popup 
>> closed, a new click from the user will open the system menus as usual.
>> 
>> This applies to all JavaFX menus from the system menu bar, that is: the 
>> application menu (the "java" menu when the application is not packaged yet) 
>> and other menus created by the application, if any. 
>> 
>> It doesn't apply to the Apple system menu, which is not handle by JavaFX, 
>> though. This causes a difference with native applications, that treat such 
>> menu in the same way.
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Jose Pereda has updated the pull request incrementally with three additional 
> commits since the last revision:
> 
>  - undo unneeded changes
>  - undo unneeded changes
>  - Remove notification and check if there is a grab instead

LGTM and my manual testing all passed.

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

Marked as reviewed by mfox (Committer).

PR Review: https://git.openjdk.org/jfx/pull/2102#pullrequestreview-4121949666

Reply via email to