From abecef6ed36565d5d756da3d406555a4e6e70387 Mon Sep 17 00:00:00 2001 From: Zachary Anderson Date: Tue, 26 Oct 2021 20:31:29 -0700 Subject: [PATCH] Revert "Fix ActivateIntent overriding the spacebar for text entry (#91129)" (#92544) This reverts commit a24d55660bde01ff17fadf28fd27fedeaae74d07. --- packages/flutter/lib/src/widgets/app.dart | 9 --- .../default_text_editing_shortcuts.dart | 16 +---- .../test/widgets/editable_text_test.dart | 66 ------------------- 3 files changed, 1 insertion(+), 90 deletions(-) diff --git a/packages/flutter/lib/src/widgets/app.dart b/packages/flutter/lib/src/widgets/app.dart index 4a4883e544..96acb7796e 100644 --- a/packages/flutter/lib/src/widgets/app.dart +++ b/packages/flutter/lib/src/widgets/app.dart @@ -1149,10 +1149,6 @@ class WidgetsApp extends StatefulWidget { /// with "s". static bool debugAllowBannerOverride = true; - // Any shortcuts added here have the potential to conflict with normal text - // input. If this should not happen and text input should take preference, - // then add a shortcut for the relevant key in DefaultTextEditingShortcuts - // mapped to DoNothingAndStopPropagationTextIntent. static const Map _defaultShortcuts = { // Activation SingleActivator(LogicalKeyboardKey.enter): ActivateIntent(), @@ -1210,11 +1206,6 @@ class WidgetsApp extends StatefulWidget { }; // Default shortcuts for the macOS platform. - // - // Any shortcuts added here have the potential to conflict with normal text - // input. If this should not happen and text input should take preference, - // then add a shortcut for the relevant key in DefaultTextEditingShortcuts - // mapped to DoNothingAndStopPropagationTextIntent. static const Map _defaultAppleOsShortcuts = { // Activation SingleActivator(LogicalKeyboardKey.enter): ActivateIntent(), diff --git a/packages/flutter/lib/src/widgets/default_text_editing_shortcuts.dart b/packages/flutter/lib/src/widgets/default_text_editing_shortcuts.dart index 4ecd36fff8..a18dc58fcb 100644 --- a/packages/flutter/lib/src/widgets/default_text_editing_shortcuts.dart +++ b/packages/flutter/lib/src/widgets/default_text_editing_shortcuts.dart @@ -160,13 +160,6 @@ class DefaultTextEditingShortcuts extends Shortcuts { child: child, ); - static const Map _commonShortcuts = { - // Allows space and enter to be used as input instead of a shortcut by - // another widget. See https://github.com/flutter/flutter/issues/90907 - SingleActivator(LogicalKeyboardKey.space): DoNothingAndStopPropagationTextIntent(), - SingleActivator(LogicalKeyboardKey.enter): DoNothingAndStopPropagationTextIntent(), - }; - static const Map _androidShortcuts = { SingleActivator(LogicalKeyboardKey.backspace): DeleteTextIntent(), SingleActivator(LogicalKeyboardKey.backspace, control: true): DeleteByWordTextIntent(), @@ -539,7 +532,7 @@ class DefaultTextEditingShortcuts extends Shortcuts { SingleActivator(LogicalKeyboardKey.keyA, meta: true): DoNothingAndStopPropagationTextIntent(), }; - static Map get _platformShortcuts { + static Map get _shortcuts { if (kIsWeb) { return _webShortcuts; } @@ -559,11 +552,4 @@ class DefaultTextEditingShortcuts extends Shortcuts { return _windowsShortcuts; } } - - static Map get _shortcuts { - return { - ..._commonShortcuts, - ..._platformShortcuts, - }; - } } diff --git a/packages/flutter/test/widgets/editable_text_test.dart b/packages/flutter/test/widgets/editable_text_test.dart index eb54e1416f..7f28c9dd8c 100644 --- a/packages/flutter/test/widgets/editable_text_test.dart +++ b/packages/flutter/test/widgets/editable_text_test.dart @@ -8,7 +8,6 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart'; -import 'package:flutter/widgets.dart'; import 'package:flutter_test/flutter_test.dart'; import '../rendering/mock_canvas.dart'; @@ -8636,71 +8635,6 @@ void main() { await tester.pump(); expect(scrollController.offset.roundToDouble(), 0.0); }); - - // Regression test for https://github.com/flutter/flutter/issues/90907. - testWidgets("ActivateIntent doesn't block space entry", (WidgetTester tester) async { - final FocusNode focusNode = FocusNode(); - bool invoked = false; - - await tester.pumpWidget(MaterialApp( - home: Scaffold( - body: Align( - alignment: Alignment.topLeft, - child: SizedBox( - width: 100, - child: ListTile( - title: Actions( - actions: >{ - ActivateIntent: CallbackAction( - onInvoke: (ActivateIntent intent) { - invoked = true; - }, - ), - }, - child: Column( - children: [ - EditableText( - autofocus: true, - showSelectionHandles: true, - maxLines: 2, - controller: TextEditingController(), - focusNode: FocusNode(), - cursorColor: Colors.red, - backgroundCursorColor: Colors.blue, - style: Typography.material2018(platform: TargetPlatform.android).black.subtitle1!.copyWith(fontFamily: 'Roboto'), - keyboardType: TextInputType.text, - ), - Focus( - focusNode: focusNode, - child: const Text('Hello'), - ), - ], - ), - ), - ), - ), - ), - ), - )); - - await tester.sendKeyEvent(LogicalKeyboardKey.space); - await tester.sendKeyEvent(LogicalKeyboardKey.enter); - await tester.pump(); - expect(invoked, isFalse); - - focusNode.requestFocus(); - await tester.pump(); - await tester.sendKeyEvent(LogicalKeyboardKey.space); - await tester.pump(); - expect(invoked, isTrue); - - invoked = false; - await tester.pump(); - await tester.sendKeyEvent(LogicalKeyboardKey.enter); - await tester.pump(); - // On the web, enter doesn't activate any controls except for buttons. - expect(invoked, kIsWeb ? isFalse : isTrue); - }); } class UnsettableController extends TextEditingController {