On Tue, 15 Jul 2025 17:59:00 GMT, Andy Goryachev <ango...@openjdk.org> wrote:

> Would it make sense to attempt fixing event consumption bugs in the ComboBox 
> and Spinner first?

When a Spinner is the focus owner it receives all KeyEvents but KeyEvents still 
need to be delivered to its editor. There's no good way of doing that now short 
of consuming the original event and firing a copy. To fix this we would have to 
introduce new API's (like some form of PR #1632).

> And perhaps also look at fixing the dispatching of consumed events such as 
> JDK-8303209 or JDK-8229467 (the latter has been by @mstr2 , I think 
> prematurely)?

Those bugs have to do with how consumption is signaled which isn't relevant. 
All that's relevant is that the original event is being consumed, not how we 
find out about it.

JavaFX handles events using dispatch chains and currently the system menu 
doesn't participate in that machinery. This causes it to work very differently 
from a standard MenuBar (which places its accelerators in the Scene which is in 
the chain). One could argue that it's a bug that the system menu doesn't 
respond to KeyEvents the way a standard MenuBar would.

Another way to look at it: do we want to outlaw what ComboBox and Spinner are 
doing? It's not illegal to create a KeyEvent and fire it at a control. It's not 
illegal to consume a KeyEvent that originated in Glass. Things only fail when 
the system menu is in effect and, again, only because it doesn't participate in 
dispatch.

Because I agree with you, this PR is intrusive. I'm not fan and I wrote it. I 
think the system menu needs to participate in event dispatch and I haven't 
found any clean, tidy way of doing that.

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

PR Comment: https://git.openjdk.org/jfx/pull/1848#issuecomment-3075427863

Reply via email to