Material text selection menu should not show pointer cursor (#100248)

This commit is contained in:
Justin McCandless 2022-03-17 16:50:15 -07:00 committed by GitHub
parent ff74557c3a
commit 30846de3ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 41 additions and 0 deletions

View File

@ -332,6 +332,8 @@ class _DesktopTextSelectionToolbarButton extends StatelessWidget {
child: TextButton(
style: TextButton.styleFrom(
alignment: Alignment.centerLeft,
enabledMouseCursor: SystemMouseCursors.basic,
disabledMouseCursor: SystemMouseCursors.basic,
primary: primary,
shape: const RoundedRectangleBorder(),
minimumSize: const Size(kMinInteractiveDimension, 36.0),

View File

@ -10027,6 +10027,45 @@ void main() {
await gesture.moveTo(center);
});
testWidgets('Text selection menu does not change mouse cursor when hovered', (WidgetTester tester) async {
final TextEditingController controller = TextEditingController(
text: 'Atwater Peel Sherbrooke Bonaventure',
);
await tester.pumpWidget(
MaterialApp(
home: Material(
child: MouseRegion(
cursor: SystemMouseCursors.forbidden,
child: TextField(
controller: controller,
),
),
),
),
);
expect(find.text('Copy'), findsNothing);
final TestGesture gesture = await tester.startGesture(
textOffsetToPosition(tester, 3),
kind: PointerDeviceKind.mouse,
buttons: kSecondaryMouseButton,
);
addTearDown(gesture.removePointer);
await tester.pump();
await gesture.up();
await tester.pumpAndSettle();
expect(RendererBinding.instance.mouseTracker.debugDeviceActiveCursor(1), SystemMouseCursors.text);
expect(find.text('Copy'), findsOneWidget);
await gesture.moveTo(tester.getCenter(find.text('Copy')));
expect(RendererBinding.instance.mouseTracker.debugDeviceActiveCursor(1), SystemMouseCursors.basic);
},
variant: TargetPlatformVariant.desktop(),
skip: isContextMenuProvidedByPlatform, // [intended] only applies to platforms where we supply the context menu.
);
testWidgets('Caret rtl with changing width', (WidgetTester tester) async {
late StateSetter setState;
bool isWide = false;