diff --git a/lib/src/editor/editor.dart b/lib/src/editor/editor.dart index d94f5c67..d4bf3f00 100644 --- a/lib/src/editor/editor.dart +++ b/lib/src/editor/editor.dart @@ -174,18 +174,29 @@ class QuillEditorState extends State @override void initState() { super.initState(); - widget.configurations.controller.editorFocusNode ??= widget.focusNode; + _editorKey = configurations.editorKey ?? GlobalKey(); + _selectionGestureDetectorBuilder = + _QuillEditorSelectionGestureDetectorBuilder( + this, + configurations.detectWordBoundary, + ); + widget.configurations.controller.editorConfigurations ??= widget.configurations; + + final focusNode = + widget.configurations.controller.editorFocusNode ??= widget.focusNode; + if (configurations.autoFocus) { - widget.configurations.controller.editorFocusNode?.requestFocus(); + focusNode.requestFocus(); } - _editorKey = configurations.editorKey ?? GlobalKey(); - _selectionGestureDetectorBuilder = - _QuillEditorSelectionGestureDetectorBuilder( - this, - configurations.detectWordBoundary, - ); + + // Hide toolbar when the editor loses focus. + focusNode.addListener(() { + if (!focusNode.hasFocus) { + _editorKey.currentState?.hideToolbar(); + } + }); } @override