- 14 Mar, 2023 1 commit
-
-
Greg Spencer authored
Refine the directional traversal algorithm for out of band widgets
-
- 28 Feb, 2023 1 commit
-
-
Michael Goderbauer authored
Fix how tests count open SemanticsHandles
-
- 23 Feb, 2023 1 commit
-
-
Greg Spencer authored
* Modify focus traversal policy search to use focus tree instead of widget tree * Eliminate unnecessary inherited widget * Remove unintentional change * Look for focus nodes without creating a dependency. * Add test * Review Changes * Fix debug_test.dart * Rebase onto master
-
- 18 Jan, 2023 1 commit
-
-
Bruno Leroux authored
* Fix focus area documentation typos * Restore intentional spaces that illustrate bigger buttons
-
- 10 Jan, 2023 1 commit
-
-
Yegor authored
* allow focus to leave FlutterView * fix tests and docs * small doc update * fix analysis lint * use closed loop for dialogs * add tests for new API * address comments * test FocusScopeNode.traversalEdgeBehavior setter; reverse wrap-around * rename actionResult to invokeResult * address comments
-
- 01 Dec, 2022 1 commit
-
-
Greg Spencer authored
* Use distance instead of coord * Sort by distance prefer axis * Switch initial sort back to sort by coordinate. * revert test change * Fix tests * Simplify test case * Add a test for irregular grids * Review Changes
-
- 12 Apr, 2022 1 commit
-
-
Kate Lovett authored
-
- 06 Apr, 2022 1 commit
-
-
Dwayne Slater authored
-
- 10 Jan, 2022 1 commit
-
-
Viren Khatri authored
-
- 08 Oct, 2021 3 commits
-
-
Ian Hickson authored
-
Zachary Anderson authored
This reverts commit 5fd259be.
-
Ian Hickson authored
-
- 29 Jul, 2021 1 commit
-
-
Tong Mu authored
-
- 28 Jul, 2021 1 commit
-
- 26 Jul, 2021 1 commit
-
-
Tong Mu authored
-
- 20 Jul, 2021 1 commit
-
-
Greg Spencer authored
When a focus traversal group has no entries, but traversal is requested, we were throwing an exception because we couldn't find the group marker's scope in the list of candidates. This fixes that, and adds a test.
-
- 26 Apr, 2021 1 commit
-
-
Tong Mu authored
Applies #78522 to existing code, by replacing all occurrences of LogicalKeySet to SingleActivator or ShortcutActivator.
-
- 21 Apr, 2021 1 commit
-
-
Phil Quitslund authored
-
- 04 Mar, 2021 1 commit
-
-
Greg Spencer authored
-
- 16 Feb, 2021 1 commit
-
-
Sam Rawlins authored
-
- 27 Jan, 2021 2 commits
-
-
Greg Spencer authored
This fixes a subtle bug in the focus traversal that would leave unfocusable FocusTraversalGroup nodes in the list of sorted nodes to be traversed, causing an assert to fire if you nested a FocusTraversalGroup in another one and made its children unfocusable.
-
Alexandre Ardhuin authored
-
- 20 Nov, 2020 1 commit
-
-
Greg Spencer authored
Adds Navigator.maybeOf to replace calling Navigator.of(context, nullOk: true), and removes the nullOk parameter. Also changes Navigator.of to return a non-nullable value, and removes many (120!) instances of the ! operator, reducing the possible places where a null dereference could occur.
-
- 29 Oct, 2020 1 commit
-
-
Greg Spencer authored
This removes the nullOk parameter from Focus.of, FocusTraversalOrder.of and FocusTraversalGroup.of, and creates maybeOf equivalents for each. The of methods now return non-nullable values, and the maybeOf equivalents return nullable values.
-
- 12 Oct, 2020 1 commit
-
-
Darren Austin authored
-
- 09 Jul, 2020 1 commit
-
-
Kate Lovett authored
-
- 11 Jun, 2020 1 commit
-
-
Alexandre Ardhuin authored
* add language version 2.8 in packages/flutter * enable non-nullable analyzer flag
-
- 03 Jun, 2020 1 commit
-
-
Greg Spencer authored
-
- 08 May, 2020 1 commit
-
-
Pierre-Louis authored
* Expose includeSemantics option to RawKeyboardListener * Revert "Expose includeSemantics option to RawKeyboardListener" This reverts commit 684edccfb0bacb358285b34b7a6dafd45a070ca7. * Set includeSemantics to false * Expose includeSemantics for RawKeyboardListener * Add test
-
- 05 May, 2020 1 commit
-
-
Greg Spencer authored
-
- 01 May, 2020 1 commit
-
-
Greg Spencer authored
This adds an ExcludeFocus widget that prevents widgets in a subtree from having or obtaining focus. It also adds the ability for a FocusNode to conditionally prevent its children from being focusable when it isn't focusable (i.e. when canRequestFocus is false). It does this by adding an descendantsAreFocusable attribute to the FocusNode, which, when false, prevents the descendants of the node from being focusable (and removes focus from them if they are currently focused).
-
- 10 Apr, 2020 1 commit
-
-
Alexandre Ardhuin authored
* replace simple Container(w & h) with SizedBox * address review comments * address review comments
-
- 13 Feb, 2020 1 commit
-
-
Greg Spencer authored
This re-lands #49235 with the addition of includeSemantics flag on the Focus widget so that the FocusTraversalGroup can create a Focus widget without affecting the semantics tree. The FocusTraversalGroup uses the Focus widget to create a grouping of descendants for traversal, but doesn't actually participate in focus (canRequestFocus is always false), so we don't want it to add a Semantics widget in that case, since that can cause semantics changes. The canRequestFocus attribute can also be used when a widget is disabled, so we do sometimes want to include Semantics even if that is false, but not in the case where it is always false, as for FocusTraversalGroup. - Added a test to make sure that FocusTraversalGroup doesn't add any semantics information.
-
- 12 Feb, 2020 1 commit
-
-
Greg Spencer authored
This reverts commit 8ef5e2f0 because it breaks some semantics tests.
-
- 11 Feb, 2020 1 commit
-
-
Greg Spencer authored
This change adds a way to provide explicit focus order for a part of the widget tree. It adds FocusTraversalPolicyGroup, which in many ways is similar to DefaultFocusTraversal, except that it groups a widget subtree together so that those nodes are traversed as a group. DefaultFocusTraversal doesn't work as one would expect: If there is more than one DefaultFocusTraversal inside of a focus scope, the policy can change depending on which node was asked to move "next", which can cause unexpected behavior. The new grouping mechanism doesn't have that problem. I deprecate DefaultFocusTraversal in this PR. It also adds OrderedFocusTraversalPolicy, which is a policy that can be supplied to FocusTraversalPolicyGroup to set the policy for a sub-tree. It looks for FocusTraversalOrder inherited widgets, which use a FocusOrder to do the sorting. FocusOrder has two subclasses: NumericalFocusOrder (which sorts based on a double), and LexicalFocusOrder, which sorts based on a String. As part of doing this, I refactored the way FocusTraversalPolicy is implemented so that it has more default implementation methods, and exposes a new protected member: sortDescendants, which makes it easier for developers to make their own policy subclasses: they only need to implement sortDescendants to get a new ordering behavior, but can also still override any of the default implementation behaviors if they need different behavior. I was able to do this without breaking the API (AFAICT).
-
- 27 Nov, 2019 1 commit
-
-
Ian Hickson authored
* Update project.pbxproj files to say Flutter rather than Chromium Also, the templates now have an empty organization so that we don't cause people to give their apps a Flutter copyright. * Update the copyright notice checker to require a standard notice on all files * Update copyrights on Dart files. (This was a mechanical commit.) * Fix weird license headers on Dart files that deviate from our conventions; relicense Shrine. Some were already marked "The Flutter Authors", not clear why. Their dates have been normalized. Some were missing the blank line after the license. Some were randomly different in trivial ways for no apparent reason (e.g. missing the trailing period). * Clean up the copyrights in non-Dart files. (Manual edits.) Also, make sure templates don't have copyrights. * Fix some more ORGANIZATIONNAMEs
-
- 20 Nov, 2019 1 commit
-
-
Greg Spencer authored
Before this change, it was possible to move the focus onto a control that was no longer in the view using focus traversal. This changes that, so that when a control is focused, it makes sure that if it is the child of a scrollable, that the scrollable attempts to keep it in view. If it is already in view, then nothing scrolls. When asked to move in a direction, the focus traversal code tries to find a control to move to inside the scrollable first, and then looks for things outside of the scrollable only once the scrollable has reached its limit in that direction.
-
- 06 Nov, 2019 1 commit
-
-
Greg Spencer authored
Currently, we listen to keyboard events to find out which keys should be represented in RawKeyboard.instance.keysPressed, but that's not sufficient to represent the physical state of the keys, since modifier keys could have been pressed when the overall app did not have keyboard focus (especially on desktop platforms). This PR synchronizes the list of modifier keys in keysPressed with the modifier key flags that are present in the raw key event so that they can be relied upon to represent the current state of the keyboard. When synchronizing these states, we don't send any new key events, since they didn't happen when the app had keyboard focus, but if you ask "is this key down", we'll give the right answer
-
- 30 Oct, 2019 1 commit
-
-
Erick (CptBlackPixel) authored
Fixes directional focus traversal when there are no available nodes to traverse to.
-
- 17 Oct, 2019 1 commit
-
-
Greg Spencer authored
In #42533, I disabled the up/down arrows for focus navigation in text fields, but we thought of a better way to do it, so this is that better way. This change reverts the other change, and instead it tests the context of the node in the action to see if it's an EditableText node. If so, then it doesn't do the navigation action.
-