Nate
61812ca3eb
Add platform check to FocusManager app lifecycle listener ( #144718 )
...
This PR implements a temporary fix for the mobile device keyboard bug reported in [this comment](https://github.com/flutter/flutter/pull/142930#issuecomment-1981750069 ).
CC @gspencergoog
2024-03-12 15:43:06 +00:00
Polina Cherkasova
e66811ae04
Make TabController communicating creation in constructor. ( #144912 )
...
Contributes to https://github.com/flutter/flutter/issues/144910
2024-03-11 23:13:47 +00:00
Nate
26e379e0fc
Refactoring if chains into switch statements ( #144905 )
...
Based on issue #144903 , this PR aims to bring the codebase more in line with the [Flutter repo style guide](https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#avoid-using-if-chains-or--or--with-enum-values ):
> #### Avoid using `if` chains or `?:` or `==` with enum values
<br>
This change unfortunately increases the total line length, but it also improves readability.
2024-03-11 23:04:57 +00:00
yim
f733e3a441
Fix multiple calls to Slider's onChanged. ( #143680 )
...
Fixes #143524
2024-03-09 07:50:23 +00:00
Percival
cab4a0fb88
Replace dead links ( #144827 )
...
I have found that some Apple-related links are no longer accessible, and they have been replaced
2024-03-09 01:08:06 +00:00
Mitchell Goodwin
2be5084b26
Fixes the transition builder changing the Cupertino transition on Android. ( #134790 )
...
Fixes #124850 .
Changes the fallback for the builder on Android. Before the error was from the platform being changed mid Cupertino transition to iOS. If a default builder wasn't set for iOS (which a developer developing only for Android might not), then it defaulted to the Zoom transition. Which changing the transition while on the fly caused issues.
2024-03-08 19:00:16 +00:00
Loïc de Porcaro
dde616dbe1
Update documentation of AlertDialog's default TextStyle for Material 3 ( #144697 )
...
## Update `AlertDialog` Documentation for Material 3 Defaults
This pull request updates the documentation for `AlertDialog` to accurately reflect the default text styles (`titleTextStyle` and `contentTextStyle`) when using Material 3.
Previously, the documentation suggested default styles (`TextTheme.titleLarge` for titles and `TextTheme.titleMedium` for content) that do not align with Material 3 implementation, which uses `TextTheme.headlineSmall` and `TextTheme.bodyMedium` respectively.
Fixes #144489
2024-03-08 00:21:35 +00:00
Faisal Ansari
874804e511
Fixed -> DropdownMenu throws exception when it is in any scrollable l… ( #140566 )
...
Fixed -> DropdownMenu throws exception when it is in any scrollable list view and scrolls quickly #139871
2024-03-07 20:46:03 +00:00
Martin Kustermann
aba7bc3f42
Use wasm-compatible conditional import in timeline.dart, avoid emitting timeline events in SchedulerBinding ( #144682 )
2024-03-06 23:08:24 +01:00
Qun Cheng
f38c5ad441
Remove deprecated errorColor from ThemeData ( #144078 )
...
This PR is to remove deprecated `ThemeData.errorColor`.
These parameters are made obsolete in https://github.com/flutter/flutter/pull/110162 .
Part of https://github.com/flutter/flutter/issues/143956
2024-03-06 20:41:04 +00:00
Greg Price
6b9d3ea4fc
Fill in SliverConstraints fields missing from ==, hashCode, toString ( #143661 )
...
I was doing some debugging on a RenderSliver subclass, and found
that SliverConstraints.toString was missing the precedingScrollExtent
field.
Add that, and add both that field and userScrollDirection to the
`==` and hashCode implementations, which had been skipping them,
so that all three methods now handle all the class's fields.
2024-03-06 03:23:18 +00:00
Tirth
311c0064d8
Adds missing style to PopupMenuButton ( #143392 )
...
Adds missing `style` to `PopupMenuButton`.
Fixes : #114709
2024-03-05 19:42:30 +00:00
Michael Goderbauer
d93f24ab93
Revert "_DefaultTabControllerState should dispose all created TabContoller instances. ( #136608 )" ( #144579 )
...
This reverts commit 9fa9fd365c9f1d8053cc75da996407abe1537410.
Fixes https://github.com/flutter/flutter/issues/144087 .
Fixes https://github.com/flutter/flutter/issues/138588 .
This crash has been reported previously from a customer in google3 in https://github.com/flutter/flutter/issues/138588 , but we weren't able to track it down. Thankfully, a repro was now provided in https://github.com/flutter/flutter/issues/144087#issuecomment-1968257383 which traced the crash down to a change made in #136608 . This PR reverts that change to fix that crash for now. I will post a new PR shortly that will add a test to cover the use case that caused the crash with #136608 to make sure we don't re-introduce the crash in the future.
2024-03-05 18:41:56 +00:00
Bruno Leroux
67e6cad0cb
Restorable CupertinoTextFormFieldRow ( #144541 )
...
## Description
This PR makes `CupertinoTextFormFieldRow` restorable.
The implementation is based on https://github.com/flutter/flutter/pull/78835 which made `FormField` and `TextFormField` restorable.
## Related Issue
Fixes https://github.com/flutter/flutter/issues/144504 .
## Tests
Adds 4 tests.
2024-03-05 10:31:04 +00:00
LongCatIsLooong
de0ccf39c6
Remove unnecessary (and the only) RenderObject.markParentNeedsLayout override ( #144466 )
...
Nobody calls it except for `markNeedsLayout`, and the render object is a guaranteed relayout boundary.
2024-03-04 21:58:17 +00:00
Bruno Leroux
16d122dbe2
Fix text color for default CupertinoContextMenuAction ( #144542 )
...
## Description
This PR fix the text color for the default action in a CupertiniContextMenu.
Previously the dynamic color was not resolved which leads to text being blacks when theme brightness was dark.
| Before | After |
|--------|--------|
|  |  |
## Related Issue
Fixes https://github.com/flutter/flutter/issues/144492 .
## Tests
Adds 1 test, updates 1.
2024-03-04 21:36:03 +00:00
Nate
1a0dc8f1e1
Add missing parameter to TableBorder.symmetric, and improve class constructors ( #144279 )
...
Originally, my aim was just to refactor (as per usual), but while messing around with the `TableBorder.symmetric` constructor, I realized that `borderRadius` was missing!
This pull request makes a few class constructors more efficient, and it fixes #144277 by adding the missing parameter.
<br>
2024-03-04 20:20:19 +00:00
Qun Cheng
7c50267fa0
Doc fix for DropdownButtonFormField.value ( #144427 )
...
Fixes https://github.com/flutter/flutter/issues/144135
This PR is just a doc fix.
2024-03-04 18:52:20 +00:00
Loïc Sharma
cc740eb503
[Windows] Update keyboard modifiers link ( #144426 )
...
Updates link to the new location. No tests as this only changes a comment.
2024-03-04 17:13:49 +00:00
Taha Tesser
9a838455e2
Fix showDateRangePicker is missing dartpad tag and cleanup ( #144475 )
...
fixes [`showDateRangePicker` interactive sample not loading](https://github.com/flutter/flutter/issues/144474 )
### Description
This fixes `showDateRangePicker` example not loading in Dartpad.
Similar fix was made for `showDatePicker` in https://github.com/flutter/flutter/pull/99401
2024-03-01 15:36:24 +00:00
Taha Tesser
ba719bc588
Fix CalendarDatePicker day selection shape and overlay ( #144317 )
...
fixes [`DatePickerDialog` date entry hover background and ink splash have different radius](https://github.com/flutter/flutter/issues/141350 )
fixes [Ability to customize DatePicker day selection background and overlay shape](https://github.com/flutter/flutter/issues/144220 )
### Code sample
<details>
<summary>expand to view the code sample</summary>
```dart
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: Builder(builder: (context) {
return FilledButton(
onPressed: () {
showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime.utc(2010),
lastDate: DateTime.utc(2030),
);
},
child: const Text('Show Date picker'),
);
}),
),
),
);
}
}
```
</details>
### Material DatePicker states specs

### Day selection overlay
| Before | After |
| --------------- | --------------- |
| <img src="https://github.com/flutter/flutter/assets/48603081/b529d38d-0232-494b-8bf2-55d28420a245 " /> | <img src="https://github.com/flutter/flutter/assets/48603081/c4799559-a7ef-45fd-aed9-aeb386370580 " /> |
### Hover, pressed, highlight preview
| Before | After |
| --------------- | --------------- |
| <video src="https://github.com/flutter/flutter/assets/48603081/8edde82a-7f39-4482-afab-183e1bce5991 " /> | <video src="https://github.com/flutter/flutter/assets/48603081/04e1502e-67a4-4b33-973d-463067d70151 " /> |
### Using `DatePickerThemeData.dayShape` to customize day selection background and overlay shape
| Before | After |
| --------------- | --------------- |
| <img src="https://github.com/flutter/flutter/assets/48603081/a0c85f58-a69b-4e14-a45d-41e580ceedce " /> | <img src="https://github.com/flutter/flutter/assets/48603081/db67cee1-d28d-4168-98b8-fd7a9cb70cda " /> |
### Example preview

2024-03-01 12:44:29 +00:00
Taha Tesser
cfabdca9ca
Fix chips use square delete button InkWell shape instead of circular ( #144319 )
...
fixes [Chips delete button hover style is square, not circular](https://github.com/flutter/flutter/issues/141335 )
### Code sample
<details>
<summary>expand to view the code sample</summary>
```dart
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: RawChip(
label: const Text('Test'),
onPressed: null,
deleteIcon: const Icon(Icons.clear, size: 18),
onDeleted: () {},
),
),
),
);
}
}
```
</details>
### Preview
| Before | After |
| --------------- | --------------- |
| <img src="https://github.com/flutter/flutter/assets/48603081/c5d62c57-97b3-4f94-b83d-df13559ee3a8 " /> | <img src="https://github.com/flutter/flutter/assets/48603081/b76edaab-73e0-4aa9-8ca2-127eedd77814 " /> |
2024-03-01 12:02:07 +00:00
Bruno Leroux
8a312cd01a
Horizontally expand text selection toolbar buttons in overflow menu ( #144391 )
...
## Description
This PR expands the items displayed in the overflow menu of a `TextSelectionToolbar` making buttons clickable in the blank area.
| Before | After |
|--------|--------|
| Each item has its own width | All items expand horizontally |
|  |  |
## Related Issue
Fixes https://github.com/flutter/flutter/issues/144089 .
## Tests
Adds 1 tests.
2024-03-01 06:40:47 +00:00
Michael Goderbauer
52bb198fb2
Remove master from API docs ( #144425 )
2024-03-01 01:06:56 +00:00
hangyu
14b914ab92
Reland [a11y] Fix date picker cannot focus on the edit field ( #144198 )
...
reland https://github.com/flutter/flutter/pull/143117
fixes: https://github.com/flutter/flutter/issues/143116
fixes: https://github.com/flutter/flutter/issues/141992
## Pre-launch Checklist
- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [ ] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [ ] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [ ] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
[Data Driven Fixes]:
https://github.com/flutter/flutter/wiki/Data-driven-Fixes
2024-02-29 15:16:53 -08:00
Qun Cheng
ee6111a7aa
Remove deprecated backgroundColor from ThemeData ( #144079 )
...
This PR is to remove deprecated ThemeData.backgroundColor.
These parameters are made obsolete in https://github.com/flutter/flutter/pull/110162 .
Part of https://github.com/flutter/flutter/issues/143956
2024-02-29 23:07:23 +00:00
Qun Cheng
1349c591cc
Remove toggleableActiveColor from ThemeData ( #144178 )
...
This PR is to remove deprecated ThemeData.toggleableActiveColor.
These parameters are made obsolete in https://github.com/flutter/flutter/pull/97972 .
Part of https://github.com/flutter/flutter/pull/111080
2024-02-29 20:58:11 +00:00
LongCatIsLooong
726e5d28c0
Add FocusNode.focusabilityListenable ( #144280 )
...
This is for https://github.com/flutter/flutter/issues/127803 : a text field should unregister from the scribble scope, when it becomes unfocusable.
When a `FocusNode` has listeners and its `_canRequestFocus` flag is set to true, it adds `+1` to `_focusabilityListeningDescendantCount` of all ancestors until it reaches the first ancestor with `descendantsAreFocusable = false`. When the a `FocusNode`'s `descendantsAreFocusable` changes, all listeners that contributed to its `_focusabilityListeningDescendantCount` will be notified.
2024-02-29 20:40:46 +00:00
Bruno Leroux
e92bca3ff5
[flutter_tools] Update external link in Android manifest template ( #144302 )
...
## Description
This PR simplifies one external link in a commented section of the Android manifest template.
## Related Issue
Fixes https://github.com/flutter/flutter/issues/144249
## Tests
Documentation only PR.
2024-02-29 06:47:19 +00:00
Justin McCandless
ac66b295c7
Docs on the interaction between Shortcuts and text input ( #144328 )
...
I was talking with @tvolkert about the complex behavior of Shortcuts when a text field is focused. I created [this dartpad](https://dartpad.dev/?id=0b5c08fa85637422baa84927b7f1ee5f ) to illustrate the problem, which shows a key being stolen from a text field by Shortcuts, and how to prevent that using DoNothingAndStopPropagationIntent.
This PR adds a section in the docs explaining how all of this works and how to override this "stealing" problem.
2024-02-29 01:09:18 +00:00
LongCatIsLooong
dddbd047d1
Reland "Cache FocusNode.enclosingScope, clean up descendantsAreFocusable ( #144207 )" ( #144330 )
...
The [internal test failure](https://github.com/flutter/flutter/pull/144207#issuecomment-1968236339 ) was caused by `Focus.withExternalFocusNode` modifying the external node's attributes. The extra changes are in this commit: e53d98b06c
CL with (almost) passing TGP: cl/611157582
2024-02-29 00:48:01 +00:00
Tong Mu
e316022227
ReportTiming callback should record the sendFrameToEngine when it was scheduled ( #144212 )
...
Fixes https://github.com/flutter/flutter/issues/144261
2024-02-29 00:47:55 +00:00
Justin McCandless
e6a6a473f7
Mention SelectionArea in SelectableText docs ( #143784 )
...
Most users should be using SelectionArea over SelectableText, so this makes that more clear/discoverable in the docs.
2024-02-28 14:36:08 -08:00
Qun Cheng
0d8eafb006
Reland "Reland - Introduce tone-based surfaces and accent color add-ons - Part 2" ( #144273 )
2024-02-28 13:55:50 -08:00
Tomasz Gucio
88f75712d7
Remove irrelevant comment in TextPainter ( #144308 )
...
This PR removes an irrelevant comment in `TextPainter` for `_computePaintOffsetFraction`. Also some typos are corrected and missing spaces/newlines added.
test-exempt: no functional change
2024-02-28 21:47:06 +00:00
auto-submit[bot]
450506868d
Reverts "Cache FocusNode.enclosingScope, clean up descendantsAreFocusable ( #144207 )" ( #144292 )
...
Reverts flutter/flutter#144207
Initiated by: CaseyHillers
Reason for reverting: b/327301206 - Breaking a customer test
Original PR Author: LongCatIsLooong
Reviewed By: {gspencergoog}
This change reverts the following previous change:
Original Description:
`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.
2024-02-28 05:06:47 +00:00
Polina Cherkasova
42b02d0a3a
Use const route for notAnnounced. ( #144050 )
2024-02-27 16:17:59 -08:00
Qun Cheng
e707f0de69
Remove bottomAppBarColor from ThemeData ( #144080 )
...
This PR is to remove deprecated ThemeData.bottomAppBarColor.
These parameters are made obsolete in https://github.com/flutter/flutter/pull/110162 .
Part of https://github.com/flutter/flutter/pull/111080
2024-02-28 00:07:51 +00:00
ufolux
d0fb2929df
fix: unexpected chinese punctuation ( #143678 )
...
*Fixed the issue with abnormal Chinese punctuation marks.*
2024-02-27 23:47:22 +00:00
hangyu
fdb17ab069
Reland [a11y] Add isEnabled semantics flag to text field ( #143601 )
...
Reland #143334
2024-02-27 22:49:13 +00:00
LongCatIsLooong
2c2fed1dfb
Remove deprecated CupertinoContextMenu.previewBuilder ( #143990 )
...
It was deprecated in https://github.com/flutter/flutter/pull/110616 .
Deprecated in https://github.com/flutter/flutter/pull/110616
2024-02-27 22:49:10 +00:00
auto-submit[bot]
2eee0b5750
Reverts "Reland - Introduce tone-based surfaces and accent color add-ons - Part 2 ( #144001 )" ( #144262 )
...
Reverts flutter/flutter#144001
Initiated by: Piinks
Reason for reverting: Failing goldens at the tip of tree
Original PR Author: QuncCccccc
Reviewed By: {HansMuller}
This change reverts the following previous change:
Original Description:
Reverts flutter/flutter#143973
This is a reland for #138521 with an updated g3fix(cl/605555997). Local test: cl/609608958.
2024-02-27 22:04:18 +00:00
Qun Cheng
871d59221c
Reland - Introduce tone-based surfaces and accent color add-ons - Part 2 ( #144001 )
...
Reverts flutter/flutter#143973
This is a reland for #138521 with an updated g3fix(cl/605555997). Local test: cl/609608958.
2024-02-27 20:21:14 +00:00
LongCatIsLooong
c353cb0123
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.
2024-02-27 19:16:06 +00:00
LongCatIsLooong
a23c81333f
Remove strut migration flag from TextPainter ( #144242 )
...
Fixes https://github.com/flutter/flutter/issues/142969 .
G3fix: cl/610790040
2024-02-27 19:13:58 +00:00
Polina Cherkasova
523b0c4d84
Move debugShowWidgetInspectorOverride ( #144029 )
...
Contributes to https://github.com/dart-lang/leak_tracker/issues/218
2024-02-26 23:55:52 +00:00
Nate
7b5ec588d1
Allow Listenable.merge() to use any iterable ( #143675 )
...
This is a very small change that fixes #143664 .
2024-02-26 23:52:23 +00:00
Nate
60d28ad913
Implementing switch expressions in rendering/ ( #143812 )
...
This pull request is part of the effort to solve issue #136139 .
The previous [`switch` expressions PR](https://github.com/flutter/flutter/pull/143496 ) was comprised of many simple changes throughout `flutter/lib/src/`, but due to some more in-depth refactoring in `flutter/lib/src/rendering/`, I decided to submit the changes to this directory as a separate pull request.
There was really just one function that I changed significantly; I'll add a comment for explanation.
2024-02-26 17:36:21 +00:00
Taha Tesser
41b1aea281
Fix Scrollbar.thickness property is ignored when the Scrollbar is hovered ( #144012 )
...
fixes [`Scrollbar.thickness` property is ignored when the `Scrollbar` is hovered](https://github.com/flutter/flutter/issues/143881 )
### Code sample
<details>
<summary>expand to view the code sample</summary>
```dart
import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
final ScrollController scrollController = ScrollController();
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Material(
child: ScrollConfiguration(
behavior: const NoScrollbarBehavior(),
child: ScrollbarTheme(
data: ScrollbarThemeData(
thickness: MaterialStateProperty.all(25.0),
showTrackOnHover: true,
),
child: Scrollbar(
thickness: 50.0,
thumbVisibility: true,
radius: const Radius.circular(3.0),
controller: scrollController,
child: SingleChildScrollView(
controller: scrollController,
child: const SizedBox(width: 4000.0, height: 4000.0),
),
),
),
),
),
);
}
}
class NoScrollbarBehavior extends ScrollBehavior {
const NoScrollbarBehavior();
@override
Widget buildScrollbar(
BuildContext context, Widget child, ScrollableDetails details) =>
child;
}
```
</details>
### Preview
| Before | After |
| --------------- | --------------- |
| <img src="https://github.com/flutter/flutter/assets/48603081/3537d60d-a5b2-488d-aa99-4c36c3721657 " /> | <img src="https://github.com/flutter/flutter/assets/48603081/cfd02095-a327-4b16-8ece-0d1c9e6813ce " /> |
2024-02-26 10:34:27 +00:00
Tong Mu
be2544ab59
Render the warm up frame in a proper rendering process ( #143290 )
...
_This PR requires https://github.com/flutter/engine/pull/50570._
This PR uses the new `PlatformDispatcher.scheduleWarmUpFrame` API to render warm up frames.
For why the warm up frame must involve the engine to render, see https://github.com/flutter/flutter/issues/142851 .
2024-02-23 21:30:14 +00:00