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).

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

Commit messages:
 - Only run tests on Mac
 - New approach to forwarding key events to ComboBox and Spinner editors

Changes: https://git.openjdk.org/jfx/pull/2166/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=2166&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8354539
  Stats: 94 lines in 4 files changed: 73 ins; 14 del; 7 mod
  Patch: https://git.openjdk.org/jfx/pull/2166.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/2166/head:pull/2166

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

Reply via email to