diff --git a/lib/common/widgets/text_field/editable_text.dart b/lib/common/widgets/text_field/editable_text.dart index 21e045659..913f7dd09 100644 --- a/lib/common/widgets/text_field/editable_text.dart +++ b/lib/common/widgets/text_field/editable_text.dart @@ -3277,12 +3277,15 @@ class EditableTextState extends State _atUserRegex.firstMatch(text.substring(0, offset)); if (match != null) { - updateEditingValue(TextEditingDeltaDeletion( - oldText: e.oldText, - deletedRange: TextRange(start: match.start, end: match.end), - selection: TextSelection.collapsed(offset: match.start), - composing: e.composing, - ).apply(_value)); + userUpdateTextEditingValue( + TextEditingDeltaDeletion( + oldText: e.oldText, + deletedRange: TextRange(start: match.start, end: match.end), + selection: TextSelection.collapsed(offset: match.start), + composing: e.composing, + ).apply(_value), + SelectionChangedCause.keyboard, + ); widget.onDelAtUser?.call(match.group(0)!.trim()); return; } @@ -3290,9 +3293,11 @@ class EditableTextState extends State } } + TextEditingValue value = _value; for (final TextEditingDelta delta in textEditingDeltas) { - updateEditingValue(delta.apply(_value)); + value = delta.apply(value); } + updateEditingValue(value); } @override