- 15 Oct, 2019 4 commits
-
-
Jason Simmons authored
The _computeChildren[Width/Height]With[Min/Max]Intrinsics methods in RenderParagraph overwrite the text painter's placeholder dimensions in order to compute potential widths and heights for the paragraph. The placeholder dimensions should be restored to the values computed by _layoutChildren before painting the text.
-
Jonah Williams authored
-
Gary Qian authored
-
Greg Spencer authored
This optimizes certain paths in the FocusManager, FocusNode, and FocusScopeNode classes in order to fix a regression in stock_animation_open_first_frame_average when I added more focus nodes to the tree to do focus traversal. Mainly I removed some remaining sync* iterators, and also started caching the computation of descendants and ancestors, since those are iterated over fairly often. This improves stock_animation_open_first_frame_average by about 2.8% overall (so about half of a 4.9% regression, both averaged over 10 runs). Addresses #42564
-
- 14 Oct, 2019 2 commits
-
-
Tong Mu authored
* Change modal barrier to tap up * Verify dismiss happen at release
-
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.
-
- 11 Oct, 2019 1 commit
-
- 10 Oct, 2019 3 commits
-
-
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
-
Tong Mu authored
* Adds a new parameter bool opaque to MouseRegion * The same to RenderMouseRegion and AnnotatedRegionLayer * Add findAnnotations to Layer
-
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.
-
- 09 Oct, 2019 3 commits
-
-
Pieter van Loon authored
-
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.
-
Kate Lovett authored
-
- 08 Oct, 2019 1 commit
-
-
Kate Lovett authored
-
- 07 Oct, 2019 1 commit
-
-
Mouad Debbar authored
-
- 04 Oct, 2019 1 commit
-
-
Greg Spencer authored
-
- 03 Oct, 2019 1 commit
-
-
Mehmet Fidanboylu authored
-
- 02 Oct, 2019 4 commits
-
-
Ori Schwartz authored
-
Tong Mu authored
* Extracts the logic of TapGestureRecognizer into an abstract class BaseTapGestureRecognizer * Fixes ModalBarrier unable to dismiss when competing
-
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)
-
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.
-
- 30 Sep, 2019 1 commit
-
-
Alexandre Ardhuin authored
* add missing trailing commas * add more missing trailing commas * add more and more missing trailing commas
-
- 28 Sep, 2019 2 commits
-
-
Greg Spencer authored
This re-lands #41417 with a slight change that will hopefully not tickle the analyzer as it did before. The last time I tried to land this, the analyzer succeeded for the analyze step in Cirrus, and locally, but failed in an integration test.
-
LongCatIsLooong authored
-
- 27 Sep, 2019 4 commits
-
-
LongCatIsLooong authored
-
Alexandre Ardhuin authored
-
Greg Spencer authored
This reverts commit eb3e2f55 because of a suspected analyzer bug. Reverting to investigate.
-
Greg Spencer authored
This addresses comments in the original PR (#41245) that introduced Intent.doNothing, adds tests, and fixes an issue with it.
-
- 26 Sep, 2019 3 commits
-
-
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.
-
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.
-
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.
-
- 25 Sep, 2019 2 commits
-
-
Nurhan Turgut authored
Fixing the editable_text unit tests by clearing the log. Add a modification for also testing cached size. (#41300)
-
LongCatIsLooong authored
-
- 24 Sep, 2019 4 commits
-
-
Alexandre Ardhuin authored
-
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.
-
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.
-
Alexandre Ardhuin authored
-
- 20 Sep, 2019 1 commit
-
-
Alexander Aprelev authored
This reverts commit b12bdd0e as it breaks existing tests that expect image loaded after certaing number of pupms. With image loading done on separate isolate pumping is not guaranteed to get image loaded.
-
- 19 Sep, 2019 2 commits
-
-
chunhtai authored
* Fixed Selectable text align is broken
-
Alexander Aprelev authored
* Use separate isolate for image loading. Use TransferableTypedData to const-cost receive bytes from that isolate.
-