flutter/examples/api/test/material
Jasper van Riet 3c422dd750
Introduce exitDuration to Tooltip for mouse pointer devices (#138321)
This PR introduces a new property `exitDuration` to Tooltip, the counterpart to `waitDuration`. The need for this is shown by #136586. This changes the behaviour of `showDuration` on mouse pointer devices. This is because the use cases for the current behaviour on touch screen devices vs mouse pointer devices is fundamentally different.

<details>
<summary>Demo: tooltip with showDuration set</summary>

Tooltip disappears after 100 ms when moving away the mouse. Tooltip will not disappear when hovered.

https://github.com/flutter/flutter/assets/5138348/81d36dc9-78e0-4723-a84b-2552843ee181

</details>

Currently, when `showDuration` is set, this adjusts the time it takes for the tooltip to hide _after_ a mouse pointer has left the tooltip. This is not the same use case as its effect on touch screen devices, where it dictates how long the tooltip stays on screen after a long press. That is needed because the tooltip takes up screen space and there is not an intuitive way to hide it, whereas when using a mouse users expect to simply have to hover somewhere else. Having the tooltip stay around will look broken.

Thus, this PR splits the two use cases. `showDuration` no longer affects mouse pointer devices at all*. There is a precedent for such mouse pointer-only behaviour in `waitDuration`. Instead, I have split up the two use cases and created the new property `exitDuration`, which will still allow for tweaking the time it takes for the tooltip to hide after the user has moved their mouse pointer somewhere else.

*Note: Should `showDuration` affect [this line](e33d4b8627/packages/flutter/lib/src/material/tooltip.dart (L610))?

Fixes #136586.

Note: I noticed that when I made the change, no tests were broken. Hopefully, the tests added here help that in the future. I also noticed that in the _existing_ tests, the `waitDuration` tests contain assertions that implicate that it is the role of `waitDuration` to change this behaviour, but that's not currently (nor in the new behaviour) true, so I have fixed those tests.
2023-12-07 21:20:06 +00:00
..
action_buttons Rename Sample classes (#124080) 2023-04-04 20:34:29 +00:00
action_chip Update Chips examples and rename files (#108538) 2022-07-29 07:17:06 +00:00
animated_icon Move AnimatedIcons example and fix typo in cupertino/text_selection_toolbar.dart (#113937) 2022-10-25 07:27:06 +00:00
app [Reland] Introduce AnimationStyle (#138721) 2023-11-20 15:24:41 -08:00
appbar Add sample code for SliverAppBar (#125785) 2023-05-05 18:09:25 +00:00
autocomplete Fix bug in Autocomplete example (#127219) 2023-05-22 16:55:21 +00:00
bottom_navigation_bar Write tests for API examples of BottomNavigationBar and IconButton (#138188) 2023-11-27 17:26:37 +00:00
bottom_sheet Fix Material 3 BottomSheet example (#116112) 2022-11-30 02:08:21 +00:00
card Write Tests for API Examples of snack_bar.0, elevated_button.0, stepper.0, radio.0, filled_button.0, outlined_button.0 & card.0 (#138987) 2023-11-28 23:57:10 +00:00
checkbox_list_tile Add Material 3 SwitchListTile example and update existing examples (#119714) 2023-02-06 09:02:37 +00:00
choice_chip Fix typos (#121171) 2023-02-23 19:43:21 +00:00
context_menu Implement SelectionArea single click/tap gestures (#132682) 2023-09-28 01:42:16 +00:00
data_table Write Tests for API Examples of cupertino_text_field.0, data_table.0, icon_button.2 & ink_well.0 (#139258) 2023-11-30 20:07:00 +00:00
date_picker Update date picker examples, remove unused variables and add missing tests (#121528) 2023-02-28 08:31:51 +00:00
dialog Adaptive alert dialog (#124336) 2023-04-18 23:00:03 +00:00
divider Rename Sample classes (#124080) 2023-04-04 20:34:29 +00:00
drawer Add missing example links (#130521) 2023-07-17 18:24:49 +00:00
dropdown Treat hidden IndexedStack children as offstage for test finder (#123129) 2023-03-29 19:58:58 +00:00
dropdown_menu Improve DropdownMenu sample code for requestFocusOnTap on mobile platforms (#134867) 2023-09-18 08:33:14 +00:00
elevated_button Write Tests for API Examples of snack_bar.0, elevated_button.0, stepper.0, radio.0, filled_button.0, outlined_button.0 & card.0 (#138987) 2023-11-28 23:57:10 +00:00
expansion_panel Update ExpansionPanel example for the updated expansionCallback callback (#132837) 2023-08-21 20:13:22 +00:00
expansion_tile Add AnimationStyle to ExpansionTile (#139664) 2023-12-06 16:40:24 +00:00
filled_button Write Tests for API Examples of snack_bar.0, elevated_button.0, stepper.0, radio.0, filled_button.0, outlined_button.0 & card.0 (#138987) 2023-11-28 23:57:10 +00:00
filter_chip Update Chips examples and rename files (#108538) 2022-07-29 07:17:06 +00:00
floating_action_button Add FAB Additional Color Mappings example (#133453) 2023-08-29 17:31:02 +00:00
icon_button Write Tests for API Examples of cupertino_text_field.0, data_table.0, icon_button.2 & ink_well.0 (#139258) 2023-11-30 20:07:00 +00:00
ink Rename Sample classes (#124080) 2023-04-04 20:34:29 +00:00
ink_well Write Tests for API Examples of cupertino_text_field.0, data_table.0, icon_button.2 & ink_well.0 (#139258) 2023-11-30 20:07:00 +00:00
input_chip Add an example for InputChip generated by user input (#130645) 2023-09-01 00:02:04 +00:00
input_decorator Updated InputDecoratorExamples for M3 (#128065) 2023-06-01 15:22:03 -07:00
list_tile Updated custom ListTile examples (#128071) 2023-06-01 16:21:42 -07:00
menu_anchor Convert menus to use OverlayPortal (#130534) 2023-10-18 20:13:08 +00:00
navigation_bar Add Badge widget to NavigationBar and NavigationRail examples (#129834) 2023-07-11 09:30:05 +00:00
navigation_drawer Add missing example links (#130521) 2023-07-17 18:24:49 +00:00
navigation_rail Add Badge widget to NavigationBar and NavigationRail examples (#129834) 2023-07-11 09:30:05 +00:00
outlined_button Write Tests for API Examples of snack_bar.0, elevated_button.0, stepper.0, radio.0, filled_button.0, outlined_button.0 & card.0 (#138987) 2023-11-28 23:57:10 +00:00
page_transitions_theme Remove 1745 decorative breaks (#123259) 2023-03-22 21:12:22 +00:00
paginated_data_table PaginatedDataTable improvements (#131374) 2023-08-15 00:55:07 +00:00
popup_menu [Reland] Introduce AnimationStyle (#138721) 2023-11-20 15:24:41 -08:00
progress_indicator Add Material 3 ProgressIndicator examples (#113950) 2022-10-25 07:27:08 +00:00
radio Write Tests for API Examples of snack_bar.0, elevated_button.0, stepper.0, radio.0, filled_button.0, outlined_button.0 & card.0 (#138987) 2023-11-28 23:57:10 +00:00
radio_list_tile Add Material 3 RadioListTile example and update existing examples (#119716) 2023-02-03 16:27:43 +00:00
refresh_indicator Rename Sample classes (#124080) 2023-04-04 20:34:29 +00:00
reorderable_list Add a ReorderableListView example with cards + cleanup existing tests (#126155) 2023-05-05 16:39:11 +00:00
scaffold Reland: "Add example and troubleshooting comment for showSnackBar" (#105195) 2022-08-09 22:06:05 +00:00
scrollbar fix a Scrollbar example crash (#127925) 2023-09-08 09:40:49 +00:00
search_anchor make suggestionsBuilder in SearchAnchor asyncable (#127019) 2023-05-24 13:12:47 -07:00
slider Add Material 3 Slider example (#115638) 2022-12-01 00:00:19 +00:00
snack_bar Write Tests for API Examples of snack_bar.0, elevated_button.0, stepper.0, radio.0, filled_button.0, outlined_button.0 & card.0 (#138987) 2023-11-28 23:57:10 +00:00
stepper Write Tests for API Examples of snack_bar.0, elevated_button.0, stepper.0, radio.0, filled_button.0, outlined_button.0 & card.0 (#138987) 2023-11-28 23:57:10 +00:00
switch Adaptive Switch (#130425) 2023-11-07 10:26:23 -08:00
switch_list_tile Add Material 3 SwitchListTile example and update existing examples (#119714) 2023-02-06 09:02:37 +00:00
tabs Updated TabBar and ToggleButtons examples (#128088) 2023-06-02 01:05:31 +00:00
text_button Reland Added MaterialStatesController, updated InkWell et al. #103167 (#105656) 2022-06-10 08:12:49 -07:00
text_field Rename Sample classes (#124080) 2023-04-04 20:34:29 +00:00
theme_data Updated the ThemeData API example (#130954) 2023-07-20 13:12:34 -07:00
time_picker Convert TimePicker to Material 3 (#116396) 2022-12-14 00:09:52 +00:00
toggle_buttons Updated TabBar and ToggleButtons examples (#128088) 2023-06-02 01:05:31 +00:00
tooltip Introduce exitDuration to Tooltip for mouse pointer devices (#138321) 2023-12-07 21:20:06 +00:00