* Updates to slider_test.dart
Fixed error that required onChanged.
* Updated slider.dart and slider_test.dart debugFillProperties
Updated slider.dart debugFillProperties to include all properties and slider_test debugFillProperties to test all properties
* Updated Slider onChanged property
* Updated debugFillProperties to ignore testing methods that are null in test
Per feedback from Hans/Anthony on Flutter Material
* Updated spacing in debugFillProperties
Per feedback from Hans
* Updated range_slider.dart and range_slider_test.dart to have DiagnosticProperties tests for all properties
* Updated range_slider.dart and range_slider_test.dart per feedback
Preventing null labels from creating an error.
Added made RangeLabels and RangeValues constants in instantiation of Range Slider.
Fixed spacing.
* Updates to start and end labels in diagnostic property tests
Updated per feedback from @clocksmith
* Stop using build_runner for dart2js
* fixes to yield when computing hashes and to imports
* add missing await
* Update filecache_test.dart
* Fix paths in filecache test
* use file uri for import
* add test cases and configurable override
* remove test dep
* fix filepaths for windows
* test no longer failing
* fix paths for test cases
* fix typo
* address comments
* make a constant
* make filehash async and use constant
* fix silly logic error
Spawn no more than 1 iframe in web tests. Using multiple iframes in DDK mode times out tests. Also set concurrency to 1 to guarantee that the test runner does not even attempt to parallelize tests.
Currently Linux builds override the default BUILD mode by putting it in
the generated config. That makes it sticky for manual runs of make,
which is inconsistent with how other platforms work.
Instead, pass the build mode as a command-line override, the same way
someone would if building directly with make. This makes the flow of
controlling the mode less confusing.
Fixes#41528
* Fix visbility of web server device when Chrome is not available
* Add tests
* Update workflow test
* Fix tests to not rely on Chrome being on the underlying machine
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.
ReorderableListView was constructing a GlobalObjectKey using
the child key as the value. This only had the intended behavior
if the child key was identical across build method invocations.
The new strategy is to scope the child key's value to the
State object's identity, allowing child keys to have value
compare semantics while disambiguating among different list view
instances.
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.
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.
Adds very preliminary support for Windows and Linux plugins:
- Adds those platforms to the new plugin schema, initially supporting just a plugin class.
- Adds C++ plugin registrant generation for any Windows or Linux plugins found.
This doesn't have yet have any build tooling for either platform, so anyone using the generated registrant still needs to do manual build configuration. This reduces the manual work, however, and creates a starting point for future tooling work.
As with all Windows and Linux work at this time, this is not final, and subject to change without warning in the future (e.g., Windows could potentially switch to a C# interface, or
'linux' may change to 'gtk' or 'linux_gtk' in pubspec.yaml).
* MouseRegion documentation claimed that onEnter and onExit
would track entry and exit regardless of whether the pointer was
down or up
* It did such, but when grabbing the value of `event.down` from
the passed event, the value was always `false`
* PointerEnterEvent and PointerExitEvent were overriding the value
passed from PointerEvent in constructors, even if the value was true
e.g. in invocations of .fromMouseEvent((PointerMoveEvent...))
* This change now passes the value along to PointerEnter/ExitEvents
while providing it a default of false, and updates documentation
Fixes#40637