1. 15 Oct, 2019 4 commits
  2. 14 Oct, 2019 2 commits
    • Tong Mu's avatar
      Change modal barrier to dismissing on tap up (#42253) · ebde5e25
      Tong Mu authored
      * Change modal barrier to tap up
      
      * Verify dismiss happen at release
      ebde5e25
    • Greg Spencer's avatar
      Fix route focusing and autofocus when reparenting focus nodes. (#42554) · e2c5fd6c
      Greg Spencer authored
      This fixes a problem with reparenting of focus nodes where it would remove the node from the scope's focused children when reparented, even if it was being reparented to another place under the same scope. This only occurred if the scope in question didn't have focus.
      
      This caused nodes to not get autofocused when they were a child of another node within the scope, and were reparented, and then the scope was given focus (as when a route is pushed).
      
      This keeps the node in the scope's child list where it was if the node is reparented under a parent within the same scope.
      
      - Added a test that tries to autofocus a TextField when the route is pushed and there is another 
        FocusNode above the text field. This was how this was first noticed: the autofocus got ignored in 
        this configuration.
      
      - Added a test to focus_manager_test that tests for the specific case of reparenting a node when 
        it's in the focused children of the scope.
      e2c5fd6c
  3. 11 Oct, 2019 1 commit
  4. 10 Oct, 2019 3 commits
    • Greg Spencer's avatar
      Re-land keyboard traversal PRs (#42278) · ce150971
      Greg Spencer authored
      This attempts to reland #40186 and #41220, that were reverted in #41945.
      
      The main modifications from the original PRs are that I predefine the shortcuts and actions maps instead of defining them inline in the build function, and I use a new mapEquals to do a deep comparison so that we don't rebuild modified things if the contents of the map haven't changed.
      
      I also eliminated an operator== and hashCode that were defined on the Actions widget, since widgets shouldn't have those. (it's too bad though: I get an 85% speedup if we leave this in! Too bad it prevents rebuilding of the children...)
      
      Fixes #40101
      ce150971
    • Tong Mu's avatar
      Add opacity control to MouseRegion. Add findAnnotations to Layer. (#37896) · a71d69ba
      Tong Mu authored
      * Adds a new parameter bool opaque to MouseRegion
      * The same to RenderMouseRegion and AnnotatedRegionLayer
      * Add findAnnotations to Layer 
      a71d69ba
    • tauu's avatar
      PlatformView: recreate surface if the controller changes (#40280) · 6b4a10ae
      tauu authored
      Currently the surface of a platform view is only created only one when the state of PlatformViewLink is created. When the PlatformViewLink widget changes, the PlatformViewController in the corresponding state is also updated. Just the surface is not updated even though it depends on the controller.
      
      This PR changes this behavior to recreate the surface whenever the controller is updated.
      6b4a10ae
  5. 09 Oct, 2019 3 commits
    • Pieter van Loon's avatar
    • Greg Spencer's avatar
      Enables setting of semantics focused and focusable attributes within Focus widgets. (#41814) · 89d6c8d9
      Greg Spencer authored
      This adds a Semantics node to the Focus and FocusScope widgets, setting the focused and focusable attributes so that the accessibility subsystem can be told when a control has the input focus.
      
      Includes an engine roll to flutter/engine@77252d2, and the following 8 engine changes:
      
      flutter/engine@77252d2 Greg Spencer Add missing focusable testing info (flutter/engine#13013)
      flutter/engine@0e42a29 skia-flutter-.. Roll src/third_party/skia 54548626a977..e27a503a0a21 (1 commits) (flutter/engine#13024)
      flutter/engine@6b56ed7 gaaclarke Refactor: FlutterDartProject (flutter/engine#13006)
      flutter/engine@393480c skia-flutter-.. Roll src/third_party/skia 77dde599c98a..54548626a977 (1 commits) (flutter/engine#13023)
      flutter/engine@080b89d skia-flutter-.. Roll src/third_party/skia 2b1a25a4d324..77dde599c98a (1 commits) (flutter/engine#13021)
      flutter/engine@90b0f30 Ben Konyi Roll src/third_party/dart f4a72bfc64..bb04f145b2 (18 commits) (flutter/engine#13020)
      flutter/engine@049fb89 skia-flutter-.. Roll fuchsia/sdk/core/linux-amd64 from q_uYX... to cknsi... (flutter/engine#13019)
      flutter/engine@6925b2a skia-flutter-.. Roll fuchsia/sdk/core/mac-amd64 from wuAtw... to u0JpE... (flutter/engine#13018)
      
      Related Issues
      Addresses #40101
      
      Landing on red in order to fix the build: it's red because of the needed engine roll.
      89d6c8d9
    • Kate Lovett's avatar
      Incorporating Link Semantics (#41327) · 1ec44a0c
      Kate Lovett authored
      1ec44a0c
  6. 08 Oct, 2019 1 commit
  7. 07 Oct, 2019 1 commit
  8. 04 Oct, 2019 1 commit
  9. 03 Oct, 2019 1 commit
  10. 02 Oct, 2019 4 commits
    • Ori Schwartz's avatar
      f8310d89
    • Tong Mu's avatar
      Refactor: Base tap gesture recognizer (#41329) · 0b0942a6
      Tong Mu authored
      * Extracts the logic of TapGestureRecognizer into an abstract class BaseTapGestureRecognizer
      * Fixes ModalBarrier unable to dismiss when competing
      0b0942a6
    • Greg Spencer's avatar
      Add shortcuts and actions for default focus traversal (#40186) · bedf46d0
      Greg Spencer authored
      This adds the default shortcuts and actions for keyboard-based focus traversal of apps.
      
      This list of shortcuts includes shortcuts for TAB, SHIFT TAB, RIGHT_ARROW, LEFT_ARROW, UP_ARROW, DOWN_ARROW, and the four DPAD keys for game controllers (because the DPAD produces arrow key events).
      
      It doesn't yet include functionality for triggering a control (e.g. SPACE, ENTER, or controller buttons), because that involves restructuring some of the Flutter controls to trigger animations differently, and so will be done in another PR (#41220)
      bedf46d0
    • Greg Spencer's avatar
      Add an ActivateAction to controls that use InkWell. (#41220) · 4512a1c1
      Greg Spencer authored
      Adds an ActivateAction to controls that use InkWell. Make InkWell host the Focus for those controls, and add the top level binding to the ENTER key. This will make it possible to trigger a button using the enter key, and to get an ink response when the button is triggered.
      
      This is a breaking change because it moves the Focus widget into the InkWell. If you have a component that uses the InkWell directly and you used to wrap that InkWell in a Focus widget to give it its notion of focus, it will now not look for that Focus ancestor for its focus state anymore. In order to control focus on the InkWell, you need to give it a FocusNode directly, via the new focusNode parameter. This should not affect users of widgets like OutlineButton or FloatingActionButton and the like, since those have been modified in this PR.
      4512a1c1
  11. 30 Sep, 2019 1 commit
  12. 28 Sep, 2019 2 commits
  13. 27 Sep, 2019 4 commits
  14. 26 Sep, 2019 3 commits
    • Greg Spencer's avatar
      Change the way ActionDispatcher is found. (#41245) · a0856358
      Greg Spencer authored
      This changes the way ActionDispatchers are found by the Actions widget, so that by default it will look for dispatchers of the parent Actions widgets instead of just creating a default ActionDispatcher. This allows overriding of the ActionDispatcher at the top level: before, the custom action dispatcher would only be invoked if explicitly set on all the Actions widgets.
      
      This is not a breaking change because there was a default value to the dispatcher parameter before that performed this function, and not specifying the dispatcher anywhere will still result in a default dispatcher being created.
      a0856358
    • Greg Spencer's avatar
      Added proper focus handling when pushing and popping routes (#40166) · 1a7bb1f5
      Greg Spencer authored
      The proposed change will change focus handling when pushing and popping routes so that the FocusScopeNode for the route receives focus when pushed, and that the FocusScopeNode in the navigator receives focus when the route is popped.
      
      This means that the last setFirstFocus call on the scope is used to determine which control actually receives focus. When the focus scope receives focus, it traverses its children, trying to find a non-scope node that is the "first focus" of itself or a child node.
      
      This is a breaking change, because the focus behavior has changed. If you push a route after this change, and had a 'first focus' set on a widget via FocusScopeNode.setFirstFocus, it won't currently receive focus immediately, but after this change it will. Similarly, if you pop a route after this change, the focus will go back to where it was before the route was pushed, which is correct, but different from what happens now.
      1a7bb1f5
    • Greg Spencer's avatar
      Fix mouse hover to not schedule a frame for every mouse move. (#41014) · 05097916
      Greg Spencer authored
      This fixes the mouse hover code to not schedule frames with every mouse move.
      
      Before this, it would schedule a post frame callback, and then schedule a frame immediately, even if there was nothing that needed to be updated. Now it will schedule checks for mouse position updates synchronously, unless there's a new annotation, and skip scheduling a new frame in all cases. It has to be async in the case of a new annotation (i.e. a new MouseRegion is added), since when the annotation is added, it hasn't yet painted, and it can't hit test against the new layer until after the paint, so in that case it schedules a post frame callback, but since it's already building a frame when it does that, it doesn't need to schedule a frame.
      
      The code also used to do mouse position checks for all mice if only one mouse changed position. I fixed this part too, so that it will only check position for the mouse that changed.
      05097916
  15. 25 Sep, 2019 2 commits
  16. 24 Sep, 2019 4 commits
    • Alexandre Ardhuin's avatar
      fix some bad indentations (#41172) · b8731621
      Alexandre Ardhuin authored
      b8731621
    • Nurhan Turgut's avatar
      Fixing a text editing bug happening when text field changes. (#41108) · f6e77a9e
      Nurhan Turgut authored
      * Carrying last size and transform information to TextInputConnection. Doing this we are making sure that the size/transform information from the previous connection will be removed, when connection changes.
      
      * remove unused lastsize and lasttransform values
      
      * Adding unit tests. Adressing comments.
      f6e77a9e
    • Greg Spencer's avatar
      Add fake keyboard key generation to the testing framework (#40706) · 0e6cb28d
      Greg Spencer authored
      There were four or five different implementations in various tests for sendFakeKeyEvent, which roughly all did the same thing. I was going to add yet another one, and decided that it needed to be generalized and centralized. This replaces those instances with something that just takes a LogicalKeyboardKey so that it's self-documenting, and can be used with multiple platforms.
      
      This adds two functions to widget tester: sendKeyDownEvent and sendKeyUpEvent which simulate key up/down from a physical keyboard. It also adds global functions simulateKeyDownEvent and simulateKeyUpEvent that can be called without a widget tester. All are async functions protected by the async guard.
      0e6cb28d
    • Alexandre Ardhuin's avatar
  17. 20 Sep, 2019 1 commit
  18. 19 Sep, 2019 2 commits