Skip to content

Commit 816f1f1

Browse files
committed
Update set textEditingValue
1 parent 734ef66 commit 816f1f1

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

lib/src/widgets/raw_editor/raw_editor_state_selection_delegate_mixin.dart

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'dart:math' as math;
33
import 'package:flutter/rendering.dart';
44
import 'package:flutter/widgets.dart';
55

6+
import '../../models/documents/document.dart';
67
import '../../models/documents/nodes/leaf.dart';
78
import '../../utils/delta.dart';
89
import '../editor.dart';
@@ -20,13 +21,23 @@ mixin RawEditorStateSelectionDelegateMixin on EditorState
2021
final oldText = widget.controller.document.toPlainText();
2122
final newText = value.text;
2223
final diff = getDiff(oldText, newText, cursorPosition);
24+
if (diff.deleted == '' && diff.inserted == '') {
25+
// Only changing selection range
26+
widget.controller.updateSelection(value.selection, ChangeSource.LOCAL);
27+
return;
28+
}
29+
2330
final insertedText = _adjustInsertedText(diff.inserted);
2431

2532
widget.controller.replaceText(
2633
diff.start, diff.deleted.length, insertedText, value.selection);
2734

35+
_applyPasteStyle(insertedText, diff.start);
36+
}
37+
38+
void _applyPasteStyle(String insertedText, int start) {
2839
if (insertedText == pastePlainText && pastePlainText != '') {
29-
final pos = diff.start;
40+
final pos = start;
3041
for (var i = 0; i < pasteStyle.length; i++) {
3142
final offset = pasteStyle[i].item1;
3243
final style = pasteStyle[i].item2;

0 commit comments

Comments
 (0)