From 864c9bba449202dacd9c71f511a7b76c98cc6dd5 Mon Sep 17 00:00:00 2001 From: li3317 Date: Wed, 22 Dec 2021 23:24:43 -0500 Subject: [PATCH] fix paste --- ...w_editor_state_selection_delegate_mixin.dart | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/src/widgets/raw_editor/raw_editor_state_selection_delegate_mixin.dart b/lib/src/widgets/raw_editor/raw_editor_state_selection_delegate_mixin.dart index 36a5b5b2..2b51ef05 100644 --- a/lib/src/widgets/raw_editor/raw_editor_state_selection_delegate_mixin.dart +++ b/lib/src/widgets/raw_editor/raw_editor_state_selection_delegate_mixin.dart @@ -19,8 +19,21 @@ mixin RawEditorStateSelectionDelegateMixin on EditorState final oldText = widget.controller.document.toPlainText(); final newText = value.text; final diff = getDiff(oldText, newText, cursorPosition); - widget.controller.replaceText( - diff.start, diff.deleted.length, diff.inserted, value.selection); + var data = diff.inserted; + if (diff.inserted.codeUnits.contains(65532)) { + final sb = StringBuffer(); + + for (var i = 0; i < data.length; i++) { + if (data.codeUnitAt(i) == 65532) { + continue; + } + sb.write(data[i]); + } + data = sb.toString(); + } + + widget.controller + .replaceText(diff.start, diff.deleted.length, data, value.selection); } @override