diff --git a/packages/flutter/lib/src/widgets/editable_text.dart b/packages/flutter/lib/src/widgets/editable_text.dart index 339c6405fa4..c4c376565aa 100644 --- a/packages/flutter/lib/src/widgets/editable_text.dart +++ b/packages/flutter/lib/src/widgets/editable_text.dart @@ -3488,11 +3488,7 @@ class EditableTextState extends State with AutomaticKeepAliveClien _textInputConnection!.connectionClosedReceived(); _textInputConnection = null; _lastKnownRemoteTextEditingValue = null; - if (kIsWeb) { - _finalizeEditing(TextInputAction.done, shouldUnfocus: true); - } else { - widget.focusNode.unfocus(); - } + widget.focusNode.unfocus(); } } diff --git a/packages/flutter/test/widgets/editable_text_test.dart b/packages/flutter/test/widgets/editable_text_test.dart index dc5b7fb797a..e3dfc46c78e 100644 --- a/packages/flutter/test/widgets/editable_text_test.dart +++ b/packages/flutter/test/widgets/editable_text_test.dart @@ -1559,7 +1559,9 @@ void main() { expect(tester.testTextInput.setClientArgs!['inputAction'], equals('TextInputAction.done')); }); - // Test case for https://github.com/flutter/flutter/issues/123523. + // Test case for + // https://github.com/flutter/flutter/issues/123523 + // https://github.com/flutter/flutter/issues/134846 . testWidgetsWithLeakTracking( 'The focus and callback behavior are correct when TextInputClient.onConnectionClosed message received', (WidgetTester tester) async { @@ -1597,17 +1599,9 @@ void main() { editableText.connectionClosed(); await tester.pump(); - if (kIsWeb) { - expect(onSubmittedInvoked, isTrue); - expect(onEditingCompleteInvoked, isTrue); - // Because we add the onEditingComplete and we didn't unfocus there, so focus still exists. - expect(focusNode.hasFocus, isTrue); - } else { - // For mobile and other platforms, calling connectionClosed will only unfocus. - expect(focusNode.hasFocus, isFalse); - expect(onEditingCompleteInvoked, isFalse); - expect(onSubmittedInvoked, isFalse); - } + expect(focusNode.hasFocus, isFalse); + expect(onEditingCompleteInvoked, isFalse); + expect(onSubmittedInvoked, isFalse); }); testWidgetsWithLeakTracking('connection is closed when TextInputClient.onConnectionClosed message received', (WidgetTester tester) async {