On Fri, 13 Jan 2023 04:04:54 GMT, Michael Strauß <mstra...@openjdk.org> wrote:
>> 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. >> >> This PR fixes the issue by counting the number of times `focusWithin` has >> been "set", and only clears it when it has been "un-set" an equal number of >> times. > > Michael Strauß has updated the pull request incrementally with one additional > commit since the last revision: > > refactoring The fix looks fine to me! ------------- Marked as reviewed by aghaisas (Reviewer). PR: https://git.openjdk.org/jfx/pull/993