On Mon, 18 May 2026 19:17:57 GMT, Martin Fox <[email protected]> wrote:

>> This PR alters the way ComboBox and Spinner deliver KeyEvents to their 
>> TextField editors. When a ComboBox or Spinner is the focus owner it is the 
>> target of all key events. Currently the skin installs a filter to catch key 
>> events and re-fire most of them at the TextEdit. The skin copies the event, 
>> fires the copy at the TextField, and then consumes the original event. This 
>> confuses the system menu bar logic on macOS; only the original event can 
>> trigger a menu item and that event is always being consumed.
>> 
>> In this PR only the original key event makes its way up and down the event 
>> dispatch chain. To drive the TextField the skin delivers the event copy 
>> directly to the TextField's event dispatcher and only consumes the original 
>> event if the TextField consumes the copy.
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Martin Fox has updated the pull request with a new target base due to a merge 
> or a rebase. The incremental webrev excludes the unrelated changes brought in 
> by the merge/rebase. The pull request contains five additional commits since 
> the last revision:
> 
>  - Merge remote-tracking branch 'upstream/master' into combospinnernofire
>  - Moved event dispatch to utility method in EventUtil.
>  - Clean up based on review feedback
>  - Only run tests on Mac
>  - New approach to forwarding key events to ComboBox and Spinner editors

modules/javafx.base/src/main/java/com/sun/javafx/event/EventUtil.java line 78:

> 76:     }
> 77: 
> 78:     public static Event dispatch(Event event, EventDispatcher dispatcher) 
> {

would it make sense to pass the `Node` instead of the dispatcher, and return a 
`boolean`?

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

PR Review Comment: https://git.openjdk.org/jfx/pull/2166#discussion_r3261816762

Reply via email to