Cache `FocusNode.enclosingScope`, clean up `descendantsAreFocusable` (#144207)
`FocusNode.canRequestFocus` was doing a double traversal if no ancestor disallows focus. The last for loop only has to reach as far as the enclosing scope. Also this caches the `FocusNode.enclosingScope` since the getter access happens much more frequently than node reparenting.
Showing
Please register or sign in to comment