From 27023a305d394ed33fa880a91da1d03f0de2451e Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Wed, 25 Jun 2025 13:22:52 +0800 Subject: [PATCH] opt pub textfield Signed-off-by: bggRGjQaUbCoE --- .../widgets/text_field/editable_text.dart | 23 +++---------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/lib/common/widgets/text_field/editable_text.dart b/lib/common/widgets/text_field/editable_text.dart index 777e362a..21e04565 100644 --- a/lib/common/widgets/text_field/editable_text.dart +++ b/lib/common/widgets/text_field/editable_text.dart @@ -3261,8 +3261,6 @@ class EditableTextState extends State @override void updateEditingValueWithDeltas(List textEditingDeltas) { - TextEditingValue value = _value; - var last = textEditingDeltas.lastOrNull; if (last case TextEditingDeltaInsertion e) { if (e.textInserted == '@') { @@ -3279,14 +3277,12 @@ class EditableTextState extends State _atUserRegex.firstMatch(text.substring(0, offset)); if (match != null) { - _lastKnownRemoteTextEditingValue = value; - _value = TextEditingDeltaDeletion( + updateEditingValue(TextEditingDeltaDeletion( oldText: e.oldText, deletedRange: TextRange(start: match.start, end: match.end), selection: TextSelection.collapsed(offset: match.start), composing: e.composing, - ).apply(value); - widget.onChanged?.call(_value.text); + ).apply(_value)); widget.onDelAtUser?.call(match.group(0)!.trim()); return; } @@ -3295,21 +3291,8 @@ class EditableTextState extends State } for (final TextEditingDelta delta in textEditingDeltas) { - value = delta.apply(value); + updateEditingValue(delta.apply(_value)); } - - _lastKnownRemoteTextEditingValue = value; - - if (value == _value) { - // This is possible, for example, when the numeric keyboard is input, - // the engine will notify twice for the same value. - // Track at https://github.com/flutter/flutter/issues/65811 - return; - } - - _value = value; - - widget.onChanged?.call(value.text); } @override