Looks very nice Michael, I especially like the more sane behavior with regards to consumed events.

I have a few questions on this:

- Would an event handler like KeyEvent.ANY at Preferred priority be called before one for KeyEvent.KEY_PRESSED at Default or System priority?

- The consumed flag doesn't change any other behavior? Consumed events only are passed to handlers at the same level, but are not bubbled up (or captured down); having consumed events not be passed to event handlers (even at the same level) seems like a more sane default for sure

- Is there a need for three levels?  If JavaFX behaves and adds it handlers at SYSTEM level, then I don't think there is a need for user handlers to have both DEFAULT and PREFERRED (they'd essentially do the same, as long as the user is aware in which order they are adding their own handlers).

- Is the order maintained within the various levels, ie, will the second PREFERRED handler added be called 2nd?

--John

On 24/10/2023 01:10, Michael Strauß wrote:
Hi Andy!

In a previous mail, I observed that a method like
`BehaviorBase.addHandlerLast` suggests to me that we're lacking core
tools in the JavaFX framework. In this case, we want to ensure that an
event handler is always invoked before (or after) other event
handlers.

One way to do that might be to support prioritized event handlers at
the core level, instead of creating new API that seems like a
workaround. I've created a proof of concept for prioritized event
handlers [0], which might be a moderate-effort but high-value addition
to JavaFX.

[0] https://github.com/openjdk/jfx/pull/1266

Reply via email to