Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 4299ff1

Browse files
committed
Fix TextField performing both new line and input action
1 parent dd91599 commit 4299ff1

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

lib/web_ui/lib/src/engine/text_editing/text_editing.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1369,6 +1369,10 @@ abstract class DefaultTextEditingStrategy with CompositionAwareMixin implements
13691369
final DomKeyboardEvent event = e as DomKeyboardEvent;
13701370
if (event.keyCode == _kReturnKeyCode) {
13711371
onAction!(inputConfiguration.inputAction);
1372+
// Stop key event propagation if the input type is not multiline.
1373+
if (inputConfiguration.inputType is! MultilineInputType) {
1374+
event.preventDefault();
1375+
}
13721376
}
13731377
}
13741378
}

lib/web_ui/test/text_editing_test.dart

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,28 @@ Future<void> testMain() async {
390390
expect(event.defaultPrevented, isFalse);
391391
});
392392

393+
test('Triggers input action and prevent entre key event for single line field', () {
394+
// Regression test for https://github.com/flutter/flutter/issues/113559
395+
final InputConfiguration config = InputConfiguration();
396+
editingStrategy!.enable(
397+
config,
398+
onChange: trackEditingState,
399+
onAction: trackInputAction,
400+
);
401+
402+
// No input action so far.
403+
expect(lastInputAction, isNull);
404+
405+
final DomKeyboardEvent event = dispatchKeyboardEvent(
406+
editingStrategy!.domElement!,
407+
'keydown',
408+
keyCode: _kReturnKeyCode,
409+
);
410+
expect(lastInputAction, 'TextInputAction.done');
411+
// And default behavior of keyboard event should have been prevented.
412+
expect(event.defaultPrevented, isTrue);
413+
});
414+
393415
test('globally positions and sizes its DOM element', () {
394416
editingStrategy!.enable(
395417
singlelineConfig,

0 commit comments

Comments
 (0)