Skip to content

Allow the Slider to always show the value indicator. #162223

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Jun 12, 2025

Conversation

yiiim
Copy link
Member

@yiiim yiiim commented Jan 26, 2025

Fixes: #34704

Modified enum ShowValueIndicator
before:

enum ShowValueIndicator {
  onlyForDiscrete,
  onlyForContinuous,
  always,
  never,
}

after:

enum ShowValueIndicator {
  onlyForDiscrete,
  onlyForContinuous,
  @Deprecated(
    'Use ShowValueIndicator.onDrag. '
    'This feature was deprecated after v3.28.0-1.0.pre.',
  )
  always,
  onDrag,
  alwaysVisible,
  never,
}

To maintain previous behavior, ShowValueIndicator.onlyForDiscrete and ShowValueIndicator.onlyForContinuous are still retained.

The behavior of ShowValueIndicator.always remains consistent with the previous implementation, but it is marked as deprecated and should be replaced with ShowValueIndicator.onDrag. A new ShowValueIndicator.alwaysVisible has been added to show the value indicator even when not dragging.

Additionally, the value indicator is now rendered by OverlayPortal.

If you had to change anything in the flutter/tests repo, include a link to the migration guide as per the breaking change policy.

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@github-actions github-actions bot added framework flutter/packages/flutter repository. See also f: labels. f: material design flutter/packages/flutter/material repository. labels Jan 26, 2025
@yiiim yiiim added the c: new feature Nothing broken; request for a new capability label Jan 27, 2025
@Piinks Piinks self-requested a review January 29, 2025 19:10
Copy link
Contributor

@Piinks Piinks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for another PR @yiiim!
FYI @TahaTesser who is verry familiar with sliders. :)

@TahaTesser TahaTesser self-requested a review February 17, 2025 09:23
Copy link
Member

@TahaTesser TahaTesser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR does a fair bit of refactoring to add OverlayPortal, this makes sliders more complex.

We had previous show value indicator behaviors without OverlayPortal. Please provide more details on OverlayPortal addition and benefits.

@yiiim
Copy link
Member Author

yiiim commented Feb 17, 2025

This PR does a fair bit of refactoring to add OverlayPortal, this makes sliders more complex.

We had previous show value indicator behaviors without OverlayPortal. Please provide more details on OverlayPortal addition and benefits.

Now, when ShowValueIndicator changes, it is necessary to update the child on the overlay simultaneously. OverlayPortal can easily achieve this.

And when we change ShowValueIndicator through setState, we cannot insert or remove OverlayEntry during the build phase.

@yiiim yiiim force-pushed the sider_value_indicator branch from bb3d73d to da97b9b Compare February 17, 2025 15:14
@TahaTesser TahaTesser self-requested a review February 19, 2025 16:05
Copy link
Member

@TahaTesser TahaTesser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work! Just some initial thoughts.


OverlayEntry? overlayEntry;
Widget _buildValueIndicator(ShowValueIndicator? showValueIndicator) {
late final Widget valueIndicator = CompositedTransformFollower(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
late final Widget valueIndicator = CompositedTransformFollower(
late final Widget valueIndicator = CompositedTransformFollower(

Is late required since the value is assigned here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If valueIndicator is never accessed, the assignment expression for valueIndicator will not be executed. It is not necessarily required to create it in the subsequent code.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the late isn't required to execute this code.

link: _layerLink,
child: _ValueIndicatorRenderObjectWidget(state: this),
);
late final Widget valueIndicatorWhenDragged = ValueListenableBuilder<bool>(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

similarly, late is used but value is also assigned here.

Comment on lines 782 to 784
void hideValueIndicator() {
assert(mounted);
_showValueIndicatorForDragged.value = false;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just making sure. Once the portal controller is created and assigned to shown, are we disposing it when value indicator is hidden? Considering a screen might have a bunch sliders and each of one of them might create a portal controller without being disposed.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you mean OverlayPortalController? OverlayPortalController does not need to dispose.

The OverlayChild will always be displayed. When ShowValueIndicator is set to be shown during dragging, _showValueIndicatorForDragged controls whether _ValueIndicatorRenderObjectWidget is mounted to the tree within the OverlayChild.

@TahaTesser
Copy link
Member

TahaTesser commented Feb 21, 2025

FYI @LongCatIsLooong on the overlay portal implementation. I was told you're working on something that would help Slider.

@TahaTesser
Copy link
Member

FYI @LongCatIsLooong on the overlay portal implementation. I was told you're working on something that would help Slider.

Here is the PR #163575

late final OverlayPortalController _valueIndicatorOverlayPortalController =
OverlayPortalController()..show();
// Control whether the value indicator is visible only when it needs to be shown during dragging.
late final ValueNotifier<bool> _showValueIndicatorForDragged = ValueNotifier<bool>(false);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: I'm not familiar with the implementation, but adding the new state variable would probably make the implementation more complicated than checking if the animation status is .dismissed?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's awesome! I completely overlooked that. It cleaned up a lot of code.

Copy link
Contributor

@LongCatIsLooong LongCatIsLooong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I looked into doing that before, the slider theming API could have been much cleaner if we could use inherited widgets, so thanks for converting the implementation to using OverlayPortal! The OverlayPortal change LGTM.

@TahaTesser TahaTesser self-requested a review March 4, 2025 15:29
Copy link
Member

@TahaTesser TahaTesser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with some nits

Comment on lines +131 to +136
@Deprecated(
'Use ShowValueIndicator.onDrag. '
'This feature was deprecated after v3.28.0-1.0.pre.',
)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you plan to write a dart fix for this deprecation? It'd be best to deprecate this property in a separate PR with dart fix.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will write this in a separate PR.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The dart fix should be included in this PR, not a separate change.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the property is deprecated in this PR then dart fix should be included.

Perhaps, I wasn't clear. I suggested to mark it as deprecated and include dart fix in a separate PR so the dart fix can be included with the deprecation.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dart fix is included in this PR.

@TahaTesser
Copy link
Member

@yiiim Could you please also update #162223 (comment) with new API changes. isDragged is now onDrag for instance.

@yiiim
Copy link
Member Author

yiiim commented Mar 6, 2025

@Piinks Can you help find out the reason why the Google test failed?

@yiiim yiiim requested a review from Piinks March 6, 2025 07:34
@TahaTesser TahaTesser self-requested a review March 11, 2025 18:03
Copy link
Member

@TahaTesser TahaTesser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just realised I approved it without making sure deprecation mark was reverted after @Piinks comment.

Please include dart fix in this PR if you plan to keep deprecation mark.

Copy link
Contributor

@Piinks Piinks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yiiim it looks like the Google testing shows the on tap functionality is broken by this change. When the slider is tapped on, it shows the value indicator in response. Can you take a look?

constant: 'onDrag'
inEnum: 'ShowValueIndicator'

# Before adding a new fix: read instructions at the top of this file.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: missing a newline here.

@@ -0,0 +1,35 @@
# Copyright 2014 The Flutter Authors. All rights reserved.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure we need a new file just for one fix, can we just add this to the fixes in fix_material.yaml?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dart fixes also need to be tested. Can you please add tests under the test_fixes directory? They demonstrate the code before and after the tool applies the migration.

@github-actions github-actions bot added the c: tech-debt Technical debt, code quality, testing, etc. label Mar 18, 2025
@yiiim yiiim force-pushed the sider_value_indicator branch from b6b9699 to 0fd3f15 Compare March 19, 2025 01:57
@yiiim
Copy link
Member Author

yiiim commented Mar 24, 2025

@yiiim it looks like the Google testing shows the on tap functionality is broken by this change. When the slider is tapped on, it shows the value indicator in response. Can you take a look?

Could you provide more information? I am unable to reproduce this.

@Piinks
Copy link
Contributor

Piinks commented Apr 8, 2025

Could you provide more information? I am unable to reproduce this.

Thanks for your patience!

Here is a recreation of the code from the broken test.

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(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
      ),
      home: RangeSlidersDemo(),
    );
  }
}

class RangeSlidersDemo extends StatefulWidget {
  static const slug = 'range-slider';

  @override
  State<StatefulWidget> createState() => _RangeSlidersDemoState();
}

class _RangeSlidersDemoState extends State<RangeSlidersDemo> {
  RangeValues _continuousValues = const RangeValues(42, 49);
  RangeValues _discreteValues = const RangeValues(20, 40);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          children: [
            Column(
              children: [
                RangeSlider(
                  labels: RangeLabels(
                    _continuousValues.start.round().toString(),
                    _continuousValues.end.round().toString(),
                  ),
                  values: _continuousValues,
                  min: 0,
                  max: 100,
                  onChanged: (RangeValues values) {
                    setState(() {
                      _continuousValues = values;
                    });
                  },
                ),
                Text('Continuous Enabled'),
              ],
            ),
            SliderTheme(
              data: SliderTheme.of(context).copyWith(
                showValueIndicator: ShowValueIndicator.onlyForContinuous,
              ),
              child: Column(
                children: [
                  RangeSlider(
                    // Key is for scuba testing only.
                    key: Key('continuousRangeSlider'),
                    labels: RangeLabels(
                      _continuousValues.start.round().toString(),
                      _continuousValues.end.round().toString(),
                    ),
                    values: _continuousValues,
                    min: 0,
                    max: 100,
                    onChanged: (RangeValues values) {
                      setState(() {
                        _continuousValues = values;
                      });
                    },
                  ),
                  Text('Continuous Enabled Value Indicator'),
                ],
              ),
            ),
            SliderTheme(
              data: SliderTheme.of(context).copyWith(
                showValueIndicator: ShowValueIndicator.onlyForDiscrete,
              ),
              child: Column(
                children: [
                  RangeSlider(
                    key: Key('discreteSlider'),
                    labels: RangeLabels(
                      _discreteValues.start.round().toString(),
                      _discreteValues.end.round().toString(),
                    ),
                    min: 0,
                    max: 100,
                    values: _discreteValues,
                    divisions: 5,
                    onChanged: (RangeValues values) {
                      setState(() {
                        _discreteValues = values;
                      });
                    },
                  ),
                  Text('Discrete Enabled Value Indicator'),
                ],
              ),
            ),
            Column(
              children: [
                RangeSlider(
                  values: _continuousValues,
                  min: 0,
                  max: 100,
                  onChanged: null,
                ),
                Text('Continuous Disabled'),
              ],
            ),
            Column(
              children: [
                RangeSlider(
                  divisions: 5,
                  min: 0,
                  max: 100,
                  values: _discreteValues,
                  onChanged: null,
                ),
                Text('Discrete Disabled'),
              ],
            ),
          ],
        ),
      ),
    );
  }
}

This issue is on the middle one with two values showing. This image does not reflect my cursor tapping on it, which briefly reveals the indicators on both sides.
The test is a screenshot test, where it taps and then takes the screenshot.

image

@Piinks
Copy link
Contributor

Piinks commented May 19, 2025

Rebasing to get a fresh run from Google testing.

@Piinks Piinks force-pushed the sider_value_indicator branch 2 times, most recently from e5761b5 to 10a4509 Compare May 21, 2025 19:14
@Piinks Piinks force-pushed the sider_value_indicator branch from 10a4509 to b84134e Compare May 29, 2025 18:13
@Piinks
Copy link
Contributor

Piinks commented Jun 2, 2025

Thanks again for your patience with this @yiiim. I have been working at this for a while trying to figure out what this change breaks.
I now have a runnable test for you that demonstrates the indicators are not showing as they were without this change:

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
      ),
      home: RangeSlidersDemo(),
    );
  }
}

class RangeSlidersDemo extends StatefulWidget {
  static const slug = 'range-slider';

  @override
  State<StatefulWidget> createState() => _RangeSlidersDemoState();
}

class _RangeSlidersDemoState extends State<RangeSlidersDemo> {
  RangeValues _continuousValues = const RangeValues(42, 49);
  RangeValues _discreteValues = const RangeValues(20, 40);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          children: [
            Column(
              children: [
                RangeSlider(
                  labels: RangeLabels(
                    _continuousValues.start.round().toString(),
                    _continuousValues.end.round().toString(),
                  ),
                  values: _continuousValues,
                  min: 0,
                  max: 100,
                  onChanged: (RangeValues values) {
                    setState(() {
                      _continuousValues = values;
                    });
                  },
                ),
                Text('Continuous Enabled'),
              ],
            ),
            SliderTheme(
              data: SliderTheme.of(context).copyWith(
                showValueIndicator: ShowValueIndicator.onlyForContinuous,
              ),
              child: Column(
                children: [
                  RangeSlider(
                    // Key is for scuba testing only.
                    key: Key('continuousRangeSlider'),
                    labels: RangeLabels(
                      _continuousValues.start.round().toString(),
                      _continuousValues.end.round().toString(),
                    ),
                    values: _continuousValues,
                    min: 0,
                    max: 100,
                    onChanged: (RangeValues values) {
                      setState(() {
                        _continuousValues = values;
                      });
                    },
                  ),
                  Text('Continuous Enabled Value Indicator'),
                ],
              ),
            ),
            SliderTheme(
              data: SliderTheme.of(context).copyWith(
                showValueIndicator: ShowValueIndicator.onlyForDiscrete,
              ),
              child: Column(
                children: [
                  RangeSlider(
                    key: Key('discreteSlider'),
                    labels: RangeLabels(
                      _discreteValues.start.round().toString(),
                      _discreteValues.end.round().toString(),
                    ),
                    min: 0,
                    max: 100,
                    values: _discreteValues,
                    divisions: 5,
                    onChanged: (RangeValues values) {
                      setState(() {
                        _discreteValues = values;
                      });
                    },
                  ),
                  Text('Discrete Enabled Value Indicator'),
                ],
              ),
            ),
            Column(
              children: [
                RangeSlider(
                  values: _continuousValues,
                  min: 0,
                  max: 100,
                  onChanged: null,
                ),
                Text('Continuous Disabled'),
              ],
            ),
            Column(
              children: [
                RangeSlider(
                  divisions: 5,
                  min: 0,
                  max: 100,
                  values: _discreteValues,
                  onChanged: null,
                ),
                Text('Discrete Disabled'),
              ],
            ),
          ],
        ),
      ),
    );
  }
}

void main() {
  testWidgets('Repro', (WidgetTester tester) async {
    final binding = TestWidgetsFlutterBinding.ensureInitialized();
    Size oldSize = binding.window.physicalSize;
    binding.window.physicalSizeTestValue = Size(1400, 1200);
    await tester.pumpWidget(MyApp());

      await tester.tap(find.byKey(Key('discreteSlider')));
      await tester.pumpAndSettle();

      await expectLater(find.byType(MaterialApp), matchesGoldenFile('goldenFile.png'));
      binding.window.physicalSizeTestValue = oldSize;
  });

@yiiim yiiim force-pushed the sider_value_indicator branch from b84134e to 2cec0fe Compare June 5, 2025 07:39
@yiiim yiiim force-pushed the sider_value_indicator branch from 920d195 to 55662b8 Compare June 6, 2025 01:38
@yiiim
Copy link
Member Author

yiiim commented Jun 6, 2025

The Google testing issue has been resolved because the problem only occurred within the same frame during press and release gestures. Therefore, it was not discovered during the run. Many thanks to @Piinks for taking the time to investigate this matter.

@Piinks
Copy link
Contributor

Piinks commented Jun 6, 2025

The Google testing issue has been resolved because the problem only occurred within the same frame during press and release gestures. Therefore, it was not discovered during the run. Many thanks to @Piinks for taking the time to investigate this matter.

Thanks very much for your patience while we figured it out! Can you add the test I provided so we have it captured for the future now? :)

@yiiim yiiim force-pushed the sider_value_indicator branch from 55662b8 to 23a4e81 Compare June 9, 2025 04:32
Copy link
Contributor

@Piinks Piinks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🎊

@Piinks Piinks added the autosubmit Merge PR when tree becomes green via auto submit App label Jun 11, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Jun 11, 2025
Merged via the queue into flutter:master with commit 972c181 Jun 12, 2025
75 of 76 checks passed
@github-project-automation github-project-automation bot moved this from In Progress to Done in Google Testing Queue Jun 12, 2025
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jun 12, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jun 12, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Jun 12, 2025
Roll Flutter from 824868f5d1e6 to f79452e3f4ea (94 revisions)

flutter/flutter@824868f...f79452e

2025-06-12 [email protected] Roll Skia from 38b9f9b0e496 to b41e7017658e (12 revisions) (flutter/flutter#170514)
2025-06-12 [email protected] Fix `Semantics.identifier` on TextField not working on web (flutter/flutter#170395)
2025-06-12 [email protected] Revert "[a11y] Semantics flag refactor step 2: embedder part" (flutter/flutter#170498)
2025-06-12 [email protected] Copy `packages_autoroller` to `dev/packages_autoroller/run`. (flutter/flutter#170495)
2025-06-11 [email protected] Allow the Slider to always show the value indicator. (flutter/flutter#162223)
2025-06-11 [email protected] Update master branch `CHANGELOG.md` for 3.32.3. (flutter/flutter#170492)
2025-06-11 [email protected] Add time to first frame for `Mac_arm64_ios imitation_game_swiftui` (flutter/flutter#167602)
2025-06-11 [email protected] Make `DropdownMenu` TextField reactive to label changes (flutter/flutter#162062)
2025-06-11 [email protected] Roll Dart SDK from b569246d64bc to 9f741ef8a689 (1 revision) (flutter/flutter#170473)
2025-06-11 [email protected] [impellerc] add GLES shader define. (flutter/flutter#170375)
2025-06-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Pause UIScene migration (#170457)" (flutter/flutter#170487)
2025-06-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix DropdownButtonFormField focusing when replacing FocusNode (#166645)" (flutter/flutter#170477)
2025-06-11 [email protected] Pause UIScene migration (flutter/flutter#170457)
2025-06-11 [email protected] iOS tool dylibs do not need entitlements (flutter/flutter#170448)
2025-06-11 [email protected] Adds getters for different formats of build mode name (flutter/flutter#170251)
2025-06-11 [email protected] Remove all code in `conductor/core` that is now unused (flutter/flutter#170454)
2025-06-11 [email protected] Roll Packages from 974f152 to 0b322a2 (9 revisions) (flutter/flutter#170462)
2025-06-11 [email protected] Roll Skia from b78fdc3ba26b to 38b9f9b0e496 (7 revisions) (flutter/flutter#170453)
2025-06-11 [email protected] Fix remaining iconbuttontheme overrides in listtile (flutter/flutter#169029)
2025-06-11 [email protected] Fix DropdownButtonFormField focusing when replacing FocusNode (flutter/flutter#166645)
2025-06-11 [email protected] Add CupertinoRadio widget of the week video (flutter/flutter#170027)
2025-06-11 [email protected] Docs: Update docs for suffix icon interaction behaviour (flutter/flutter#169828)
2025-06-11 [email protected] [ Widget Preview ] Don't try to load previews with compile-time errors (flutter/flutter#170262)
2025-06-11 [email protected] [canvaskit] Manually trigger `input` event in text editing tests for Safari (flutter/flutter#170022)
2025-06-11 [email protected] Tiny clean-up in triage docs (flutter/flutter#170429)
2025-06-11 [email protected] Roll pub packages (flutter/flutter#170444)
2025-06-11 [email protected] [Impeller] Avoid creating paths when rendering arcs (flutter/flutter#170398)
2025-06-11 [email protected] Fix date picker calendar tap targets (portrait mode) (flutter/flutter#169163)
2025-06-11 [email protected] Add SK_SUPPORT_UNSPANNED_APIS staging flag (flutter/flutter#170139)
2025-06-11 [email protected] Roll Dart SDK from 6290dfd1d88a to b569246d64bc (4 revisions) (flutter/flutter#170430)
2025-06-11 [email protected] Roll Skia from 910070084066 to b78fdc3ba26b (33 revisions) (flutter/flutter#170412)
2025-06-11 [email protected] Use pathops module groups (flutter/flutter#169857)
2025-06-10 [email protected] Roll pub packages (flutter/flutter#170399)
2025-06-10 [email protected] Verify old version of Python has the `lib2to3` import available (flutter/flutter#170187)
2025-06-10 [email protected] Use "flutter pub get" to resolve packages when building the docs snippets tool (flutter/flutter#170381)
2025-06-10 [email protected] [engine] Reland: ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (flutter/flutter#170389)
2025-06-10 [email protected] Revert "Add call to Dart_NotifyDestroyed when the flutter view is des… (flutter/flutter#170309)
2025-06-10 [email protected] fix: set versionCodeOverride when split-per-abi is specified (flutter/flutter#169816)
2025-06-10 [email protected] fix: Skip native assets build test (flaky, takes 15m+) (flutter/flutter#170383)
2025-06-10 [email protected] Marks Linux web_benchmarks_ddc to be unflaky (flutter/flutter#167631)
2025-06-10 [email protected] Marks Linux web_benchmarks_ddc_hot_reload to be unflaky (flutter/flutter#168807)
2025-06-10 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[engine] ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (#170313)" (flutter/flutter#170377)
2025-06-10 [email protected] [a11y] Semantics flag refactor step 2: embedder part (flutter/flutter#167738)
2025-06-10 [email protected] Roll Dart SDK from c26e7ca44805 to 6290dfd1d88a (5 revisions) (flutter/flutter#170363)
2025-06-10 [email protected] Remove `pubspec.lock` files for `flutter_tools` and `widget_preview_scaffold`. (flutter/flutter#170364)
2025-06-10 [email protected] [engine] ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (flutter/flutter#170313)
...
feduke-nukem pushed a commit to Yobari-Timeliners/golub that referenced this pull request Jun 13, 2025
Roll Flutter from 824868f5d1e6 to f79452e3f4ea (94 revisions)

flutter/flutter@824868f...f79452e

2025-06-12 [email protected] Roll Skia from 38b9f9b0e496 to b41e7017658e (12 revisions) (flutter/flutter#170514)
2025-06-12 [email protected] Fix `Semantics.identifier` on TextField not working on web (flutter/flutter#170395)
2025-06-12 [email protected] Revert "[a11y] Semantics flag refactor step 2: embedder part" (flutter/flutter#170498)
2025-06-12 [email protected] Copy `packages_autoroller` to `dev/packages_autoroller/run`. (flutter/flutter#170495)
2025-06-11 [email protected] Allow the Slider to always show the value indicator. (flutter/flutter#162223)
2025-06-11 [email protected] Update master branch `CHANGELOG.md` for 3.32.3. (flutter/flutter#170492)
2025-06-11 [email protected] Add time to first frame for `Mac_arm64_ios imitation_game_swiftui` (flutter/flutter#167602)
2025-06-11 [email protected] Make `DropdownMenu` TextField reactive to label changes (flutter/flutter#162062)
2025-06-11 [email protected] Roll Dart SDK from b569246d64bc to 9f741ef8a689 (1 revision) (flutter/flutter#170473)
2025-06-11 [email protected] [impellerc] add GLES shader define. (flutter/flutter#170375)
2025-06-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Pause UIScene migration (#170457)" (flutter/flutter#170487)
2025-06-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix DropdownButtonFormField focusing when replacing FocusNode (#166645)" (flutter/flutter#170477)
2025-06-11 [email protected] Pause UIScene migration (flutter/flutter#170457)
2025-06-11 [email protected] iOS tool dylibs do not need entitlements (flutter/flutter#170448)
2025-06-11 [email protected] Adds getters for different formats of build mode name (flutter/flutter#170251)
2025-06-11 [email protected] Remove all code in `conductor/core` that is now unused (flutter/flutter#170454)
2025-06-11 [email protected] Roll Packages from 974f1522ee03 to 17c02a5 (9 revisions) (flutter/flutter#170462)
2025-06-11 [email protected] Roll Skia from b78fdc3ba26b to 38b9f9b0e496 (7 revisions) (flutter/flutter#170453)
2025-06-11 [email protected] Fix remaining iconbuttontheme overrides in listtile (flutter/flutter#169029)
2025-06-11 [email protected] Fix DropdownButtonFormField focusing when replacing FocusNode (flutter/flutter#166645)
2025-06-11 [email protected] Add CupertinoRadio widget of the week video (flutter/flutter#170027)
2025-06-11 [email protected] Docs: Update docs for suffix icon interaction behaviour (flutter/flutter#169828)
2025-06-11 [email protected] [ Widget Preview ] Don't try to load previews with compile-time errors (flutter/flutter#170262)
2025-06-11 [email protected] [canvaskit] Manually trigger `input` event in text editing tests for Safari (flutter/flutter#170022)
2025-06-11 [email protected] Tiny clean-up in triage docs (flutter/flutter#170429)
2025-06-11 [email protected] Roll pub packages (flutter/flutter#170444)
2025-06-11 [email protected] [Impeller] Avoid creating paths when rendering arcs (flutter/flutter#170398)
2025-06-11 [email protected] Fix date picker calendar tap targets (portrait mode) (flutter/flutter#169163)
2025-06-11 [email protected] Add SK_SUPPORT_UNSPANNED_APIS staging flag (flutter/flutter#170139)
2025-06-11 [email protected] Roll Dart SDK from 6290dfd1d88a to b569246d64bc (4 revisions) (flutter/flutter#170430)
2025-06-11 [email protected] Roll Skia from 910070084066 to b78fdc3ba26b (33 revisions) (flutter/flutter#170412)
2025-06-11 [email protected] Use pathops module groups (flutter/flutter#169857)
2025-06-10 [email protected] Roll pub packages (flutter/flutter#170399)
2025-06-10 [email protected] Verify old version of Python has the `lib2to3` import available (flutter/flutter#170187)
2025-06-10 [email protected] Use "flutter pub get" to resolve packages when building the docs snippets tool (flutter/flutter#170381)
2025-06-10 [email protected] [engine] Reland: ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (flutter/flutter#170389)
2025-06-10 [email protected] Revert "Add call to Dart_NotifyDestroyed when the flutter view is des… (flutter/flutter#170309)
2025-06-10 [email protected] fix: set versionCodeOverride when split-per-abi is specified (flutter/flutter#169816)
2025-06-10 [email protected] fix: Skip native assets build test (flaky, takes 15m+) (flutter/flutter#170383)
2025-06-10 [email protected] Marks Linux web_benchmarks_ddc to be unflaky (flutter/flutter#167631)
2025-06-10 [email protected] Marks Linux web_benchmarks_ddc_hot_reload to be unflaky (flutter/flutter#168807)
2025-06-10 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[engine] ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (#170313)" (flutter/flutter#170377)
2025-06-10 [email protected] [a11y] Semantics flag refactor step 2: embedder part (flutter/flutter#167738)
2025-06-10 [email protected] Roll Dart SDK from c26e7ca44805 to 6290dfd1d88a (5 revisions) (flutter/flutter#170363)
2025-06-10 [email protected] Remove `pubspec.lock` files for `flutter_tools` and `widget_preview_scaffold`. (flutter/flutter#170364)
2025-06-10 [email protected] [engine] ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (flutter/flutter#170313)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c: new feature Nothing broken; request for a new capability c: tech-debt Technical debt, code quality, testing, etc. f: material design flutter/packages/flutter/material repository. framework flutter/packages/flutter repository. See also f: labels. will affect goldens Changes to golden files
Projects
Development

Successfully merging this pull request may close these issues.

Flutter slider should have the feature to show value indicator all the time, not just while gesturing
4 participants