diff --git a/lib/src/widgets/raw_editor.dart b/lib/src/widgets/raw_editor.dart index ef02fbc1..bca95269 100644 --- a/lib/src/widgets/raw_editor.dart +++ b/lib/src/widgets/raw_editor.dart @@ -695,15 +695,13 @@ class RawEditorState extends EditorState void _updateOrDisposeSelectionOverlayIfNeeded() { if (_selectionOverlay != null) { - if (_hasFocus && !textEditingValue.selection.isCollapsed) { - _selectionOverlay!.update(textEditingValue); - } else { + if (!_hasFocus) { _selectionOverlay!.dispose(); _selectionOverlay = null; + } else if (!textEditingValue.selection.isCollapsed) { + _selectionOverlay!.update(textEditingValue); } } else if (_hasFocus) { - _selectionOverlay?.hide(); - _selectionOverlay = EditorTextSelectionOverlay( value: textEditingValue, context: context, diff --git a/lib/src/widgets/raw_editor/raw_editor_state_text_input_client_mixin.dart b/lib/src/widgets/raw_editor/raw_editor_state_text_input_client_mixin.dart index 0461a42e..f4ead94b 100644 --- a/lib/src/widgets/raw_editor/raw_editor_state_text_input_client_mixin.dart +++ b/lib/src/widgets/raw_editor/raw_editor_state_text_input_client_mixin.dart @@ -306,7 +306,7 @@ mixin RawEditorStateTextInputClientMixin on EditorState } final size = renderEditor.size; final transform = renderEditor.getTransformTo(null); - _textInputConnection!.setEditableSizeAndTransform(size, transform); + _textInputConnection?.setEditableSizeAndTransform(size, transform); }); } }