From 020ee48d2158b896952c522e04dadab5e0f10fcc Mon Sep 17 00:00:00 2001 From: GyulaSipos <120306955+GyulaSipos@users.noreply.github.com> Date: Sun, 6 Aug 2023 23:48:54 +0200 Subject: [PATCH 1/2] Update markdown_text_input.dart Added an option to recieve FocusNode from outside of the widget --- lib/markdown_text_input.dart | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/markdown_text_input.dart b/lib/markdown_text_input.dart index 1690566..6779fbd 100644 --- a/lib/markdown_text_input.dart +++ b/lib/markdown_text_input.dart @@ -40,6 +40,10 @@ class MarkdownTextInput extends StatefulWidget { /// Default value is true. final bool insertLinksByDialog; + ///Optional focusNode, the Widget creates it's own if not provided + final FocusNode focusNode; + + /// Constructor for [MarkdownTextInput] MarkdownTextInput( this.onTextChanged, @@ -58,6 +62,7 @@ class MarkdownTextInput extends StatefulWidget { this.textStyle, this.controller, this.insertLinksByDialog = true, + this.focusNode = FocusNode() }); @override @@ -67,7 +72,7 @@ class MarkdownTextInput extends StatefulWidget { class _MarkdownTextInputState extends State { final TextEditingController _controller; TextSelection textSelection = const TextSelection(baseOffset: 0, extentOffset: 0); - FocusNode focusNode = FocusNode(); + final focusNode = widget.focusNode; _MarkdownTextInputState(this._controller); From 6e065c0a162c237887bcb01f28210138f70da7cd Mon Sep 17 00:00:00 2001 From: gysipos <54852084+gysipos@users.noreply.github.com> Date: Wed, 23 Aug 2023 18:21:56 +0200 Subject: [PATCH 2/2] Update markdown_text_input.dart bugfixes --- lib/markdown_text_input.dart | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/markdown_text_input.dart b/lib/markdown_text_input.dart index 6779fbd..e493ae2 100644 --- a/lib/markdown_text_input.dart +++ b/lib/markdown_text_input.dart @@ -41,7 +41,7 @@ class MarkdownTextInput extends StatefulWidget { final bool insertLinksByDialog; ///Optional focusNode, the Widget creates it's own if not provided - final FocusNode focusNode; + final FocusNode? focusNode; /// Constructor for [MarkdownTextInput] @@ -62,7 +62,7 @@ class MarkdownTextInput extends StatefulWidget { this.textStyle, this.controller, this.insertLinksByDialog = true, - this.focusNode = FocusNode() + this.focusNode }); @override @@ -72,7 +72,7 @@ class MarkdownTextInput extends StatefulWidget { class _MarkdownTextInputState extends State { final TextEditingController _controller; TextSelection textSelection = const TextSelection(baseOffset: 0, extentOffset: 0); - final focusNode = widget.focusNode; + late final FocusNode focusNode; _MarkdownTextInputState(this._controller); @@ -97,6 +97,7 @@ class _MarkdownTextInputState extends State { @override void initState() { + focusNode = widget.focusNode ?? FocusNode(); _controller.text = widget.initialValue; _controller.addListener(() { if (_controller.selection.baseOffset != -1) textSelection = _controller.selection; @@ -108,7 +109,7 @@ class _MarkdownTextInputState extends State { @override void dispose() { if (widget.controller == null) _controller.dispose(); - focusNode.dispose(); + if (widget.focusNode == null) focusNode.dispose(); super.dispose(); }