diff --git a/lib/src/components/image_editor/layers/text_layer.dart b/lib/src/components/image_editor/layers/text_layer.dart index 3cc4cfe..0de8163 100755 --- a/lib/src/components/image_editor/layers/text_layer.dart +++ b/lib/src/components/image_editor/layers/text_layer.dart @@ -42,7 +42,7 @@ class _TextViewState extends State { @override Widget build(BuildContext context) { - if (isDeleted) return Container(); + if (widget.layerData.isDeleted) return Container(); if (widget.layerData.isEditing) { return Positioned( @@ -58,6 +58,7 @@ class _TextViewState extends State { autofocus: true, onEditingComplete: () { setState(() { + widget.layerData.isDeleted = textController.text == ""; widget.layerData.isEditing = false; widget.layerData.text = textController.text; }); @@ -65,9 +66,12 @@ class _TextViewState extends State { onTapOutside: (a) { widget.layerData.text = textController.text; Future.delayed(Duration(milliseconds: 100), () { - setState(() { - widget.layerData.isEditing = false; - }); + if (context.mounted) { + setState(() { + widget.layerData.isDeleted = textController.text == ""; + widget.layerData.isEditing = false; + }); + } }); }, decoration: InputDecoration( @@ -98,7 +102,7 @@ class _TextViewState extends State { }); }, onScaleEnd: (d) { - if (deleteLayer) isDeleted = true; + if (deleteLayer) widget.layerData.isDeleted = true; elementIsScaled = false; setState(() {}); }, diff --git a/lib/src/views/camera_to_share/share_image_editor_view.dart b/lib/src/views/camera_to_share/share_image_editor_view.dart index aa3e5a3..fc85cf2 100644 --- a/lib/src/views/camera_to_share/share_image_editor_view.dart +++ b/lib/src/views/camera_to_share/share_image_editor_view.dart @@ -56,6 +56,8 @@ class _ShareImageEditorView extends State { FontAwesomeIcons.font, tooltipText: context.lang.addTextItem, onPressed: () async { + layers = layers.where((x) => !x.isDeleted).toList(); + if (layers.any((x) => x.isEditing)) return; undoLayers.clear(); removedLayers.clear(); layers.add(TextLayerData());