diff --git a/lib/src/widgets/editor.dart b/lib/src/widgets/editor.dart index d5eab93a..efbbfbe4 100644 --- a/lib/src/widgets/editor.dart +++ b/lib/src/widgets/editor.dart @@ -6,11 +6,11 @@ import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart'; -import '../models/documents/style.dart'; import 'package:tuple/tuple.dart'; import '../models/documents/document.dart'; import '../models/documents/nodes/container.dart' as container_node; +import '../models/documents/style.dart'; import '../utils/platform.dart'; import 'box.dart'; import 'controller.dart'; diff --git a/lib/src/widgets/raw_editor.dart b/lib/src/widgets/raw_editor.dart index 5ce4f400..543d0895 100644 --- a/lib/src/widgets/raw_editor.dart +++ b/lib/src/widgets/raw_editor.dart @@ -852,7 +852,8 @@ class RawEditorState extends EditorState @override void copySelection(SelectionChangedCause cause) { - _pastePlainText = widget.controller.getPlainText(); + _pastePlainText = + widget.controller.getPlainText(); _pasteStyle = widget.controller.getAllIndividualSelectionStyles(); // Copied straight from EditableTextState super.copySelection(cause); 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 f22e417a..c5fe8317 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 @@ -4,7 +4,6 @@ import 'package:flutter/rendering.dart'; import 'package:flutter/widgets.dart'; import '../../models/documents/nodes/leaf.dart'; -import '../../models/documents/style.dart'; import '../../utils/delta.dart'; import '../editor.dart'; @@ -27,17 +26,16 @@ mixin RawEditorStateSelectionDelegateMixin on EditorState diff.start, diff.deleted.length, insertedText, value.selection); if (insertedText == pastePlainText && pastePlainText != '') { - var pos = diff.start; - for ( var i = 0; i < pasteStyle.length; i++){ - int offset = pasteStyle[i].item1; - Style style = pasteStyle[i].item2; - if (i == pasteStyle.length - 1) { - style.attributes.forEach((k, v) => widget.controller - .formatText(pos + offset, pastePlainText.length - offset, v)); - } else { - style.attributes.forEach((k, v) => widget.controller - .formatText(pos + offset, pasteStyle[i + 1].item1, v)); - } + final pos = diff.start; + for (var i = 0; i < pasteStyle.length; i++) { + final offset = pasteStyle[i].item1; + final style = pasteStyle[i].item2; + widget.controller.formatTextStyle( + pos + offset, + i == pasteStyle.length - 1 + ? pastePlainText.length - offset + : pasteStyle[i + 1].item1, + style); } } }