Update set textEditingValue

pull/635/head
X Code 3 years ago
parent 734ef66e58
commit 816f1f1367
  1. 13
      lib/src/widgets/raw_editor/raw_editor_state_selection_delegate_mixin.dart

@ -3,6 +3,7 @@ import 'dart:math' as math;
import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart';
import '../../models/documents/document.dart';
import '../../models/documents/nodes/leaf.dart';
import '../../utils/delta.dart';
import '../editor.dart';
@ -20,13 +21,23 @@ mixin RawEditorStateSelectionDelegateMixin on EditorState
final oldText = widget.controller.document.toPlainText();
final newText = value.text;
final diff = getDiff(oldText, newText, cursorPosition);
if (diff.deleted == '' && diff.inserted == '') {
// Only changing selection range
widget.controller.updateSelection(value.selection, ChangeSource.LOCAL);
return;
}
final insertedText = _adjustInsertedText(diff.inserted);
widget.controller.replaceText(
diff.start, diff.deleted.length, insertedText, value.selection);
_applyPasteStyle(insertedText, diff.start);
}
void _applyPasteStyle(String insertedText, int start) {
if (insertedText == pastePlainText && pastePlainText != '') {
final pos = diff.start;
final pos = start;
for (var i = 0; i < pasteStyle.length; i++) {
final offset = pasteStyle[i].item1;
final style = pasteStyle[i].item2;

Loading…
Cancel
Save