> On Oct 7, 2023, at 2:00 PM, Michael Strauß <michaelstr...@gmail.com> wrote:
> 
> JavaFX has two closely related focus concepts: `Node.focused`, which
> can apply to any number of nodes in a scene graph, and
> `Scene.focusOwner`, which is the single node in a scene graph that
> accepts user input.

The current JavaDoc for Node.focused is straight-forward and intuitive.
    
     Indicates whether this Node currently has the input focus.
     To have the input focus, a node must be the Scene's focus
     owner, and the scene must be in a Stage that is visible
     and active.

The way TableView is using this property violates all of these criteria.

The proposed focusOwner property is not a replacement because it only meets one 
of these criteria; a node can be the focusOwner on a stage that is not active 
in which case it doesn’t actually have the input focus (but it will when the 
stage is activated). So the proposed focus-owner-within pseudo-class will apply 
even in windows that aren’t active. It might have it’s uses but it’s not a 
replacement for focus-within and won’t address the issue in the original bug 
report.

I think JDK-8317426 should be re-opened. The current implementation of 
Node.focused is out-of-spec so everything downstream from it (including 
focus-within) is out-of-spec. But the real issue is that the behavior of 
Node.focused is utterly unintuitive.

Put another way, if we were to leave the implementation as-is and just update 
the Node.focused JavaDoc what would the new wording be?




Reply via email to