-
Bug
-
Resolution: Fixed
-
P3
-
jfx19
-
None
-
b17
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8301688 | jfx21 | Dukebot | P3 | Resolved | Fixed | b03 |
When a scene graph contains multiple nested focused nodes (this can happen with TableView and other controls), the focusWithin bits that are cleared when a focused node is de-focused must only be cleared when there is no other nested node in the scene graph that would also cause focusWithin to be set.
For example, consider a scene graph of nested nodes:
A -> B -> C -> D
When B and D are both focused, the scene graph looks like this:
A(focusWithin)
-> B(focused, focusWithin)
-> C(focusWithin)
-> D(focused, focusWithin)
When B is de-focused, the focusWithin flags must still be preserved because D remains focused.
For example, consider a scene graph of nested nodes:
A -> B -> C -> D
When B and D are both focused, the scene graph looks like this:
A(focusWithin)
-> B(focused, focusWithin)
-> C(focusWithin)
-> D(focused, focusWithin)
When B is de-focused, the focusWithin flags must still be preserved because D remains focused.
- backported by
-
JDK-8301688 Node.focusWithin doesn't account for nested focused nodes
- Resolved
- duplicates
-
JDK-8299662 :focus-within is set incorrectly after some TreeTable selection changes
- Closed
- relates to
-
JDK-8301556 Node.focusWithin.adjust may need to validate its argument
- Open
-
JDK-8299662 :focus-within is set incorrectly after some TreeTable selection changes
- Closed
(1 links to)