fix: TabBar fontFamily inheritance with custom label styles#171699
fix: TabBar fontFamily inheritance with custom label styles#171699auto-submit[bot] merged 6 commits intoflutter:masterfrom
Conversation
939f9dd to
283f672
Compare
283f672 to
fd249f4
Compare
fd249f4 to
4aa6549
Compare
MitchellGoodwin
left a comment
There was a problem hiding this comment.
Thank you for submitting this change, I left some comments.
| } | ||
| selectedStyle = selectedStyle.copyWith(inherit: true); | ||
|
|
||
| TextStyle? unselectedStyle = unselectedLabelStyle ?? tabBarTheme.unselectedLabelStyle; |
There was a problem hiding this comment.
Looks like if labelStyle is non-null, and unselectedLabelStyle and tabBarTheme.unselectedLabelStyle are null, then we should use labelStyle here. So:
| TextStyle? unselectedStyle = unselectedLabelStyle ?? tabBarTheme.unselectedLabelStyle; | |
| TextStyle? unselectedStyle = unselectedLabelStyle ?? tabBarTheme.unselectedLabelStyle ?? labelStyle; |
There was a problem hiding this comment.
Thanks! And I fixed TextStyle? to TextStyle at 047a2bb.
| defaults.unselectedLabelStyle!) | ||
| .copyWith(inherit: true); | ||
| TextStyle? selectedStyle = labelStyle ?? tabBarTheme.labelStyle; | ||
| if (selectedStyle == null || selectedStyle.inherit) { |
There was a problem hiding this comment.
Are these if checks necessary for readability? If .inherit is false than .merge should just return the textStyle unchanged.
There was a problem hiding this comment.
merge only looked at other.inherit. For this reason, I this that it is necessary to check selectedStyle.inherit and unselectedStyle.inherit.
There was a problem hiding this comment.
After thinking about it for a while, I came up with the idea of changing the order of processing. How about this? 15b21d3
Co-authored-by: Mitchell Goodwin <[email protected]>
MitchellGoodwin
left a comment
There was a problem hiding this comment.
LGTM! Thank you for the fix.
QuncCccccc
left a comment
There was a problem hiding this comment.
LGTM! Thank you for your contribution:)!
flutter/flutter@afba7d7...20788c0 2025-07-24 [email protected] Roll Packages from 9c85e5e to 963550c (4 revisions) (flutter/flutter#172696) 2025-07-24 [email protected] Add missing deprecations to CupertinoDynamicColor. (flutter/flutter#171160) 2025-07-24 [email protected] Roll Dart SDK from a181fe571dc8 to 26dece893751 (2 revisions) (flutter/flutter#172683) 2025-07-24 [email protected] Migrate to null aware elements - Part 1 (flutter/flutter#172198) 2025-07-24 [email protected] licenses_cpp: implements extracting regions from matched text (flutter/flutter#172655) 2025-07-24 [email protected] Roll pub packages (flutter/flutter#172677) 2025-07-24 [email protected] Marks Mac_ios keyboard_hot_restart_ios to be unflaky (flutter/flutter#168053) 2025-07-24 [email protected] Roll Abseil and remove a workaround for a Fuchsia target that was unable to build Abseil (flutter/flutter#172665) 2025-07-24 [email protected] Add `automaticallyImplyActions` property to AppBar (flutter/flutter#171113) 2025-07-24 [email protected] fix: TabBar fontFamily inheritance with custom label styles (flutter/flutter#171699) 2025-07-23 [email protected] Marks Linux_mokey new_gallery__crane_perf to be unflaky (flutter/flutter#167633) 2025-07-23 [email protected] [android] Fix broken `--android-skip-build-dependency-validation` flag (flutter/flutter#172581) 2025-07-23 [email protected] Fix: Ensure Text widget locale is included in semantics language tag (flutter/flutter#172034) 2025-07-23 [email protected] [Web][a11y] Update selected chips semantics (flutter/flutter#172660) 2025-07-23 [email protected] Roll Skia from eea1c33fbe84 to 094ac350125f (29 revisions) (flutter/flutter#172664) 2025-07-23 [email protected] Marks Mac_arm64_ios imitation_game_flutter to be unflaky (flutter/flutter#168052) 2025-07-23 [email protected] Roll Dart SDK from a31774a3d049 to a181fe571dc8 (2 revisions) (flutter/flutter#172667) 2025-07-23 [email protected] Adapt xcresult parser for Xcode 16 changes (flutter/flutter#172596) 2025-07-23 [email protected] Update excluded_files to match the current output of the old license checker (flutter/flutter#172670) 2025-07-23 [email protected] Manual Roll of Dart SDK from da9e0299c120 to a31774a3d049 (flutter/flutter#172616) 2025-07-23 [email protected] [FGP] Small restructuring of Android Studio native flutter dependency support (flutter/flutter#172651) 2025-07-23 [email protected] revert: Replaces legacy licenses check with licenses_cpp (flutter/flutter#172568) 2025-07-23 [email protected] fix: size-exp naming (flutter/flutter#172647) 2025-07-23 [email protected] Roll Fuchsia Test Scripts from MnFlN7VWM_7h7EmBV... to BWj3yYC74ud58QhN0... (flutter/flutter#172646) 2025-07-23 [email protected] [DisplayList] implement shadow bounds without relying on Skia utilities (flutter/flutter#172572) 2025-07-23 [email protected] Update `dev/bots/post_process_docs.dart` to use `flutter.version.json` (flutter/flutter#172601) 2025-07-23 [email protected] Emit a warning on `--[no-]disable-dds`, preferring `--no-dds` (flutter/flutter#172595) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
…171699) fix flutter#127787 When `labelStyle` or `unselectedLabelStyle` is specified, the `defaults.labelStyle` is ignored. Merge `defaults` to make `labelStyle` and `TabBarTheme.labelStyle` apply default text styles. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] 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/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#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/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Mitchell Goodwin <[email protected]>
flutter/flutter@afba7d7...20788c0 2025-07-24 [email protected] Roll Packages from 9c85e5e to 963550c (4 revisions) (flutter/flutter#172696) 2025-07-24 [email protected] Add missing deprecations to CupertinoDynamicColor. (flutter/flutter#171160) 2025-07-24 [email protected] Roll Dart SDK from a181fe571dc8 to 26dece893751 (2 revisions) (flutter/flutter#172683) 2025-07-24 [email protected] Migrate to null aware elements - Part 1 (flutter/flutter#172198) 2025-07-24 [email protected] licenses_cpp: implements extracting regions from matched text (flutter/flutter#172655) 2025-07-24 [email protected] Roll pub packages (flutter/flutter#172677) 2025-07-24 [email protected] Marks Mac_ios keyboard_hot_restart_ios to be unflaky (flutter/flutter#168053) 2025-07-24 [email protected] Roll Abseil and remove a workaround for a Fuchsia target that was unable to build Abseil (flutter/flutter#172665) 2025-07-24 [email protected] Add `automaticallyImplyActions` property to AppBar (flutter/flutter#171113) 2025-07-24 [email protected] fix: TabBar fontFamily inheritance with custom label styles (flutter/flutter#171699) 2025-07-23 [email protected] Marks Linux_mokey new_gallery__crane_perf to be unflaky (flutter/flutter#167633) 2025-07-23 [email protected] [android] Fix broken `--android-skip-build-dependency-validation` flag (flutter/flutter#172581) 2025-07-23 [email protected] Fix: Ensure Text widget locale is included in semantics language tag (flutter/flutter#172034) 2025-07-23 [email protected] [Web][a11y] Update selected chips semantics (flutter/flutter#172660) 2025-07-23 [email protected] Roll Skia from eea1c33fbe84 to 094ac350125f (29 revisions) (flutter/flutter#172664) 2025-07-23 [email protected] Marks Mac_arm64_ios imitation_game_flutter to be unflaky (flutter/flutter#168052) 2025-07-23 [email protected] Roll Dart SDK from a31774a3d049 to a181fe571dc8 (2 revisions) (flutter/flutter#172667) 2025-07-23 [email protected] Adapt xcresult parser for Xcode 16 changes (flutter/flutter#172596) 2025-07-23 [email protected] Update excluded_files to match the current output of the old license checker (flutter/flutter#172670) 2025-07-23 [email protected] Manual Roll of Dart SDK from da9e0299c120 to a31774a3d049 (flutter/flutter#172616) 2025-07-23 [email protected] [FGP] Small restructuring of Android Studio native flutter dependency support (flutter/flutter#172651) 2025-07-23 [email protected] revert: Replaces legacy licenses check with licenses_cpp (flutter/flutter#172568) 2025-07-23 [email protected] fix: size-exp naming (flutter/flutter#172647) 2025-07-23 [email protected] Roll Fuchsia Test Scripts from MnFlN7VWM_7h7EmBV... to BWj3yYC74ud58QhN0... (flutter/flutter#172646) 2025-07-23 [email protected] [DisplayList] implement shadow bounds without relying on Skia utilities (flutter/flutter#172572) 2025-07-23 [email protected] Update `dev/bots/post_process_docs.dart` to use `flutter.version.json` (flutter/flutter#172601) 2025-07-23 [email protected] Emit a warning on `--[no-]disable-dds`, preferring `--no-dds` (flutter/flutter#172595) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
…171699) fix flutter#127787 When `labelStyle` or `unselectedLabelStyle` is specified, the `defaults.labelStyle` is ignored. Merge `defaults` to make `labelStyle` and `TabBarTheme.labelStyle` apply default text styles. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] 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/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#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/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Mitchell Goodwin <[email protected]>
…171699) fix flutter#127787 When `labelStyle` or `unselectedLabelStyle` is specified, the `defaults.labelStyle` is ignored. Merge `defaults` to make `labelStyle` and `TabBarTheme.labelStyle` apply default text styles. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] 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/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#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/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Mitchell Goodwin <[email protected]>
…171699) fix flutter#127787 When `labelStyle` or `unselectedLabelStyle` is specified, the `defaults.labelStyle` is ignored. Merge `defaults` to make `labelStyle` and `TabBarTheme.labelStyle` apply default text styles. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] 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/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#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/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Mitchell Goodwin <[email protected]>
…171699) fix flutter#127787 When `labelStyle` or `unselectedLabelStyle` is specified, the `defaults.labelStyle` is ignored. Merge `defaults` to make `labelStyle` and `TabBarTheme.labelStyle` apply default text styles. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] 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/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#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/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Mitchell Goodwin <[email protected]>
fix #127787
When
labelStyleorunselectedLabelStyleis specified, thedefaults.labelStyleis ignored.Merge
defaultsto makelabelStyleandTabBarTheme.labelStyleapply default text styles.Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.