这是indexloc提供的服务,不要输入任何密码
Skip to content

Remove Tooltip mouse tracker listener & update hovering/MouseRegion logic & animation #119199

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 12 commits into from
May 25, 2023

Conversation

LongCatIsLooong
Copy link
Contributor

@LongCatIsLooong LongCatIsLooong commented Jan 25, 2023

Fixes #117627

Behavior changes:

  1. If fade in/fade out animation is already in progress, hiding/showing the tooltip will immediately take effect without waiting for waitDuration.
  2. A PointerDownEvent that doesn't become a part of a "trigger" gesture dismisses the tooltip, even for hovered ones.
  3. The OverlayEntry is now updated only when the previous tooltip was completely dismissed. This can be fixed by OverlayPortal but I'm not sure what the correct behavior is.

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.
  • All existing and new tests are passing.

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

@flutter-dashboard flutter-dashboard bot added f: material design flutter/packages/flutter/material repository. framework flutter/packages/flutter repository. See also f: labels. labels Jan 25, 2023
@@ -1577,9 +1577,12 @@ void main() {
)
);

final Finder tooltip1 = find.byType(Tooltip);
await tester.pump(const Duration(days: 1));
Copy link
Contributor Author

@LongCatIsLooong LongCatIsLooong Jan 25, 2023

Choose a reason for hiding this comment

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

These tests (radio/switch/check box) were assuming the OverlayEntry tooltip updates when the Tooltip widget updates so I had to add code to wait for the previous tooltip to dismiss.

@gspencergoog
Copy link
Contributor

The _revealLastTooltip was to deal with nested widgets which each had a tooltip on them so that only the deepest one would be shown. See the before/after videos in this PR:
#90457

@LongCatIsLooong
Copy link
Contributor Author

Ah because MouseRegion doesn't notify you when you move from the inner MouseRegion to the outer one?

@gspencergoog
Copy link
Contributor

Ah because MouseRegion doesn't notify you when you move from the inner MouseRegion to the outer one?

Yes.

@flutter-dashboard
Copy link

This pull request executed golden file tests, but it has not been updated in a while (20+ days). Test results from Gold expire after as many days, so this pull request will need to be updated with a fresh commit in order to get results from Gold.

For more guidance, visit Writing a golden file test for package:flutter.

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.

@github-actions github-actions bot added d: api docs Issues with https://api.flutter.dev/ d: examples Sample code and demos documentation labels May 18, 2023
@LongCatIsLooong
Copy link
Contributor Author

Hi @gspencergoog would you like to take a look at this one when you get a chance?

Copy link
Contributor

@gspencergoog gspencergoog left a comment

Choose a reason for hiding this comment

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

32384589-a60f0e74-c078-11e7-9bc1-e5b5287aea9d

This looks a lot better.

@@ -19,6 +19,70 @@ import 'tooltip_visibility.dart';
/// Signature for when a tooltip is triggered.
typedef TooltipTriggeredCallback = void Function();

// A special [MouseRegion] that when nested, only the first [_ExclusiveMouseRegion]
Copy link
Contributor

Choose a reason for hiding this comment

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

No need for the brackets in this comment, it's not a dartdoc comment, unless you want to make it one. If you did, then the links would be live in an IDE, so it might be a good idea, even though it's a private class.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Do you mean using /// instead of //?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Changed to ///.

engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 25, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 25, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 25, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 25, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 25, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 25, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 25, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 25, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 26, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 26, 2023
auto-submit bot pushed a commit to flutter/packages that referenced this pull request May 26, 2023
Roll Flutter from 216605b to ee162e4 (53 revisions)

flutter/flutter@216605b...ee162e4

2023-05-26 engine-flutter-autoroll@skia.org Roll Packages from 995bfc5 to 9f8dcc5 (4 revisions) (flutter/flutter#127671)
2023-05-26 engine-flutter-autoroll@skia.org Roll Flutter Engine from 474fcbbe445e to 8573f3b63a1f (1 revision) (flutter/flutter#127647)
2023-05-26 engine-flutter-autoroll@skia.org Roll Flutter Engine from f63fcf5a274e to 474fcbbe445e (1 revision) (flutter/flutter#127644)
2023-05-26 engine-flutter-autoroll@skia.org Roll Flutter Engine from b6fcbe31ba1a to f63fcf5a274e (1 revision) (flutter/flutter#127642)
2023-05-26 engine-flutter-autoroll@skia.org Roll Flutter Engine from bec5da5bff7c to b6fcbe31ba1a (1 revision) (flutter/flutter#127641)
2023-05-26 engine-flutter-autoroll@skia.org Roll Flutter Engine from 593d4d6b1f9b to bec5da5bff7c (2 revisions) (flutter/flutter#127638)
2023-05-26 engine-flutter-autoroll@skia.org Roll Flutter Engine from f4dc96aef71b to 593d4d6b1f9b (1 revision) (flutter/flutter#127635)
2023-05-26 engine-flutter-autoroll@skia.org Roll Flutter Engine from ff04d2fdd12b to f4dc96aef71b (2 revisions) (flutter/flutter#127633)
2023-05-26 31859944+LongCatIsLooong@users.noreply.github.com Remove a bad assert from tooltip implementation (flutter/flutter#127629)
2023-05-26 31859944+LongCatIsLooong@users.noreply.github.com Remove rounding from TextPainter (flutter/flutter#127099)
2023-05-26 109253501+pdblasi-google@users.noreply.github.com Adds `TestDisplay` API for testing `Display` features (flutter/flutter#127525)
2023-05-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6a4e675ab0b4 to ff04d2fdd12b (3 revisions) (flutter/flutter#127630)
2023-05-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from 99f2653cbb79 to 6a4e675ab0b4 (2 revisions) (flutter/flutter#127625)
2023-05-25 54558023+keyonghan@users.noreply.github.com Append $flutter/osx sdk property to existing platforms/targets relying on xcode (flutter/flutter#127537)
2023-05-25 chillers@google.com Indent markdown value on CP issue template (flutter/flutter#127623)
2023-05-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6ff02c17268f to 99f2653cbb79 (6 revisions) (flutter/flutter#127619)
2023-05-25 42216813+eliasyishak@users.noreply.github.com `ProcessResultMatcher` created and used in test (flutter/flutter#127414)
2023-05-25 chillers@google.com Fix yaml lint issue (flutter/flutter#127600)
2023-05-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from 515a4bfc4b6e to 6ff02c17268f (1 revision) (flutter/flutter#127609)
2023-05-25 36861262+QuncCccccc@users.noreply.github.com `SearchBar` should not be impacted by overall `InputDecorationTheme` (flutter/flutter#127465)
2023-05-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from 195009b91abd to 515a4bfc4b6e (4 revisions) (flutter/flutter#127601)
2023-05-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from fb463217d1f3 to 195009b91abd (1 revision) (flutter/flutter#127591)
2023-05-25 dnfield@google.com avoid incorrect usage of TimelineTask (flutter/flutter#127527)
2023-05-25 tessertaha@gmail.com Add `ScrollNotificationObserver` sample (flutter/flutter#127023)
2023-05-25 engine-flutter-autoroll@skia.org Roll Packages from fba97fa to 995bfc5 (3 revisions) (flutter/flutter#127590)
2023-05-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from a74d9d1f4776 to fb463217d1f3 (1 revision) (flutter/flutter#127577)
2023-05-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from a7f026b03e35 to a74d9d1f4776 (1 revision) (flutter/flutter#127565)
2023-05-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from fb38bb6b1bc1 to a7f026b03e35 (1 revision) (flutter/flutter#127563)
2023-05-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from 2be736c390ee to fb38bb6b1bc1 (1 revision) (flutter/flutter#127560)
2023-05-25 31859944+LongCatIsLooong@users.noreply.github.com Remove Tooltip mouse tracker listener & update hovering/MouseRegion logic & animation (flutter/flutter#119199)
2023-05-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from 37ebad2d5c27 to 2be736c390ee (2 revisions) (flutter/flutter#127554)
2023-05-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from 62a83490ee60 to 37ebad2d5c27 (1 revision) (flutter/flutter#127551)
2023-05-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from 1bed04a4375a to 62a83490ee60 (3 revisions) (flutter/flutter#127546)
2023-05-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6a361090a367 to 1bed04a4375a (2 revisions) (flutter/flutter#127544)
2023-05-25 engine-flutter-autoroll@skia.org Roll Flutter Engine from 9ba461efd3fe to 6a361090a367 (3 revisions) (flutter/flutter#127542)
2023-05-24 chillers@google.com Revert "Update labeler action wildcards" (flutter/flutter#127541)
2023-05-24 mdebbar@google.com [web] ui.platformViewRegistry => ui_web.platformViewRegistry (flutter/flutter#127493)
2023-05-24 engine-flutter-autoroll@skia.org Roll Flutter Engine from c641f6307f08 to 9ba461efd3fe (6 revisions) (flutter/flutter#127536)
2023-05-24 lsaudon@gmail.com Add missing parameters in `TextFormField` (flutter/flutter#127020)
2023-05-24 chillers@google.com Update labeler action wildcards (flutter/flutter#127524)
2023-05-24 31859944+LongCatIsLooong@users.noreply.github.com Improve `TextPainter.layout` caching (flutter/flutter#118128)
2023-05-24 49699333+dependabot[bot]@users.noreply.github.com Bump actions/labeler from 2713f7303c96cb1e69627957ec16eea0fd7f94a4 to 0776a679364a9a16110aac8d0f40f5e11009e327 (flutter/flutter#127533)
2023-05-24 leroux_bruno@yahoo.fr Fix ScrollPosition overscroll precision error (flutter/flutter#127321)
2023-05-24 dleyba042@gmail.com `Slider.onChangeStart` & `Slider.onChangeEnd` are not called on keyboard shortcuts (flutter/flutter#126896)
2023-05-24 bdero@google.com Manually roll Flutter Engine from 0c41b02cd5a6 to c641f6307f08 (flutter/flutter#127514)
2023-05-24 chillers@google.com Update CP template to include timeline and changelog (flutter/flutter#127507)
...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 16, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 17, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 17, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App d: api docs Issues with https://api.flutter.dev/ d: examples Sample code and demos f: material design flutter/packages/flutter/material repository. framework flutter/packages/flutter repository. See also f: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG] Tooltip calls build when mouse enters/leaves Flutter window
2 participants