Prepare for RenderDecorator.computeBaseline changes.#146363
Prepare for RenderDecorator.computeBaseline changes.#146363auto-submit[bot] merged 29 commits intoflutter:masterfrom
Conversation
485f679 to
a30b462
Compare
justinmc
left a comment
There was a problem hiding this comment.
LGTM 👍 as long as the Google tests pass.
Thanks for cleaning this up. _layout especially is scarily fragile. The diff was hard to read at times but overall it looks good if it passes tests.
| RenderBox? get prefixIcon => childForSlot(_DecorationSlot.prefixIcon); | ||
| RenderBox? get suffixIcon => childForSlot(_DecorationSlot.suffixIcon); | ||
| RenderBox? get helperError => childForSlot(_DecorationSlot.helperError); | ||
| RenderBox get helperError => childForSlot(_DecorationSlot.helperError)!; |
There was a problem hiding this comment.
Why is this no longer nullable? Is this like the first one in a greater planned refactor?
There was a problem hiding this comment.
The _layout method assumes it's non-null so I think this makes the assumption more explicit.
| // This method applies layout to all of the renderers except the container. | ||
| // For convenience, the container is laid out in performLayout(). | ||
| _RenderDecorationLayout _layout(BoxConstraints layoutConstraints) { | ||
| _RenderDecorationLayout _layout(BoxConstraints constraints) { |
There was a problem hiding this comment.
That seems less redundant 👍
| // end. | ||
| final double t = textAlignVertical.y; | ||
| return middle + (end - middle) * t; | ||
| static double _interpolateThree(double begin, double middle, double end, TextAlignVertical textAlignVertical) { |
There was a problem hiding this comment.
+1 to making stuff like this static.
| double computeMinIntrinsicWidth(double height) { | ||
| return _minWidth(icon, height) | ||
| + (prefixIcon != null ? 0.0 : (textDirection == TextDirection.ltr ? contentPadding.left : contentPadding.right)) | ||
| + (prefixIcon != null ? 0.0 : contentPadding.start) |
There was a problem hiding this comment.
Good call making this EdgeInsetsDirectional.
| final double helperErrorBaseline = helperError.getDistanceToBaseline(TextBaseline.alphabetic)!; | ||
| final double counterBaseline = counter?.getDistanceToBaseline(TextBaseline.alphabetic)! ?? 0.0; | ||
|
|
||
| double start, end; |
There was a problem hiding this comment.
Could these be late final?
There was a problem hiding this comment.
they are updated after laying out each child.
| expect(intrinsicHeight, equals(height)); | ||
| }); | ||
|
|
||
| testWidgets('Error message for negative baseline', (WidgetTester tester) async { |
There was a problem hiding this comment.
I added that in #74326. There used to be a helper method that lays out a child and computes its baseline, even for center aligned children. It's removed. Having negative baselines may look ugly but I don't think it asserts anymore.
79cfd2f to
18ace04
Compare
flutter/flutter@477ebd8...98d23f7 2024-04-06 [email protected] Prepare for RenderDecorator.computeBaseline changes. (flutter/flutter#146363) 2024-04-06 [email protected] Roll Flutter Engine from 563bdb1d7976 to 605b3f35fa0a (1 revision) (flutter/flutter#146393) 2024-04-06 [email protected] Roll Flutter Engine from 482172d16528 to 563bdb1d7976 (1 revision) (flutter/flutter#146385) 2024-04-06 [email protected] Roll Flutter Engine from b0d7ac5425e9 to 482172d16528 (1 revision) (flutter/flutter#146382) 2024-04-06 [email protected] Roll Flutter Engine from df9f7433fc70 to b0d7ac5425e9 (2 revisions) (flutter/flutter#146377) 2024-04-06 [email protected] Roll Flutter Engine from b5039157cbc1 to df9f7433fc70 (1 revision) (flutter/flutter#146373) 2024-04-05 [email protected] Make FileSystem dependency explicit througout. (flutter/flutter#146008) 2024-04-05 [email protected] Roll Flutter Engine from 48604dfd9d49 to b5039157cbc1 (3 revisions) (flutter/flutter#146370) 2024-04-05 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 3.24.9 to 3.24.10 (flutter/flutter#146368) 2024-04-05 [email protected] Roll Flutter Engine from da995a1061c5 to 48604dfd9d49 (2 revisions) (flutter/flutter#146366) 2024-04-05 [email protected] Roll Flutter Engine from 6a478d6931b2 to da995a1061c5 (1 revision) (flutter/flutter#146364) 2024-04-05 [email protected] Roll Flutter Engine from 62df3bd5f681 to 6a478d6931b2 (3 revisions) (flutter/flutter#146360) 2024-04-05 [email protected] Copy part files and sourcemaps when building with dart2js. (flutter/flutter#146356) 2024-04-05 [email protected] Roll Flutter Engine from d048b9aed529 to 62df3bd5f681 (1 revision) (flutter/flutter#146357) 2024-04-05 [email protected] Reland "Bump to AGP 8.1/Gradle 8.3 (almost) everywhere" (flutter/flutter#146307) 2024-04-05 [email protected] Roll Flutter Engine from 6974dbac35a1 to d048b9aed529 (1 revision) (flutter/flutter#146355) 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],[email protected],[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
Minor changes to make the `RenderDecorator.computeBaseline` change a bit easier to make. No semantic changes.
flutter/flutter@477ebd8...98d23f7 2024-04-06 [email protected] Prepare for RenderDecorator.computeBaseline changes. (flutter/flutter#146363) 2024-04-06 [email protected] Roll Flutter Engine from 563bdb1d7976 to 605b3f35fa0a (1 revision) (flutter/flutter#146393) 2024-04-06 [email protected] Roll Flutter Engine from 482172d16528 to 563bdb1d7976 (1 revision) (flutter/flutter#146385) 2024-04-06 [email protected] Roll Flutter Engine from b0d7ac5425e9 to 482172d16528 (1 revision) (flutter/flutter#146382) 2024-04-06 [email protected] Roll Flutter Engine from df9f7433fc70 to b0d7ac5425e9 (2 revisions) (flutter/flutter#146377) 2024-04-06 [email protected] Roll Flutter Engine from b5039157cbc1 to df9f7433fc70 (1 revision) (flutter/flutter#146373) 2024-04-05 [email protected] Make FileSystem dependency explicit througout. (flutter/flutter#146008) 2024-04-05 [email protected] Roll Flutter Engine from 48604dfd9d49 to b5039157cbc1 (3 revisions) (flutter/flutter#146370) 2024-04-05 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 3.24.9 to 3.24.10 (flutter/flutter#146368) 2024-04-05 [email protected] Roll Flutter Engine from da995a1061c5 to 48604dfd9d49 (2 revisions) (flutter/flutter#146366) 2024-04-05 [email protected] Roll Flutter Engine from 6a478d6931b2 to da995a1061c5 (1 revision) (flutter/flutter#146364) 2024-04-05 [email protected] Roll Flutter Engine from 62df3bd5f681 to 6a478d6931b2 (3 revisions) (flutter/flutter#146360) 2024-04-05 [email protected] Copy part files and sourcemaps when building with dart2js. (flutter/flutter#146356) 2024-04-05 [email protected] Roll Flutter Engine from d048b9aed529 to 62df3bd5f681 (1 revision) (flutter/flutter#146357) 2024-04-05 [email protected] Reland "Bump to AGP 8.1/Gradle 8.3 (almost) everywhere" (flutter/flutter#146307) 2024-04-05 [email protected] Roll Flutter Engine from 6974dbac35a1 to d048b9aed529 (1 revision) (flutter/flutter#146355) 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],[email protected],[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
Minor changes to make the
RenderDecorator.computeBaselinechange a bit easier to make. No semantic changes.Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.