Unverified Commit 434b81f1 authored by Mahdi Bagheri's avatar Mahdi Bagheri Committed by GitHub

Fixing richMessage gesture recognizer in tooltip widget (#126207)

Fixing #126206 and #113388 issues

*The IgnorePointer is preventing the richMessage touch events being recognized. Just removing that from*

*Solves #126206 and #113388*
parent 682dd3bd
...@@ -850,30 +850,28 @@ class _TooltipOverlay extends StatelessWidget { ...@@ -850,30 +850,28 @@ class _TooltipOverlay extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
Widget result = IgnorePointer( Widget result = FadeTransition(
child: FadeTransition( opacity: animation,
opacity: animation, child: ConstrainedBox(
child: ConstrainedBox( constraints: BoxConstraints(minHeight: height),
constraints: BoxConstraints(minHeight: height), child: DefaultTextStyle(
child: DefaultTextStyle( style: Theme.of(context).textTheme.bodyMedium!,
style: Theme.of(context).textTheme.bodyMedium!, child: Container(
child: Container( decoration: decoration,
decoration: decoration, padding: padding,
padding: padding, margin: margin,
margin: margin, child: Center(
child: Center( widthFactor: 1.0,
widthFactor: 1.0, heightFactor: 1.0,
heightFactor: 1.0, child: Text.rich(
child: Text.rich( richMessage,
richMessage, style: textStyle,
style: textStyle, textAlign: textAlign,
textAlign: textAlign,
),
), ),
), ),
), ),
), ),
) ),
); );
if (onEnter != null || onExit != null) { if (onEnter != null || onExit != null) {
result = MouseRegion( result = MouseRegion(
......
...@@ -1906,6 +1906,36 @@ void main() { ...@@ -1906,6 +1906,36 @@ void main() {
expect(find.byType(SizedBox), findsOneWidget); expect(find.byType(SizedBox), findsOneWidget);
} }
}); });
testWidgetsWithLeakTracking('Tooltip should not ignore users tap on richMessage', (WidgetTester tester) async {
bool isTapped = false;
await tester.pumpWidget(
MaterialApp(
home: Tooltip(
richMessage: TextSpan(
text: tooltipText,
recognizer: TapGestureRecognizer()..onTap = () {
isTapped = true;
}
),
showDuration: const Duration(seconds: 5),
triggerMode: TooltipTriggerMode.tap,
child: const Icon(Icons.refresh)
),
),
);
final Finder tooltip = find.byType(Tooltip);
expect(find.text(tooltipText), findsNothing);
await _testGestureTap(tester, tooltip);
final Finder textSpan = find.text(tooltipText);
expect(textSpan, findsOneWidget);
await _testGestureTap(tester, textSpan);
expect(isTapped, isTrue);
});
} }
Future<void> setWidgetForTooltipMode( Future<void> setWidgetForTooltipMode(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment