|
@@ -157,6 +157,9 @@ class TerminalViewState extends State<TerminalView> {
|
|
|
@override
|
|
@override
|
|
|
void didUpdateWidget(TerminalView oldWidget) {
|
|
void didUpdateWidget(TerminalView oldWidget) {
|
|
|
if (oldWidget.focusNode != widget.focusNode) {
|
|
if (oldWidget.focusNode != widget.focusNode) {
|
|
|
|
|
+ if (oldWidget.focusNode == null) {
|
|
|
|
|
+ _focusNode.dispose();
|
|
|
|
|
+ }
|
|
|
_focusNode = widget.focusNode ?? FocusNode();
|
|
_focusNode = widget.focusNode ?? FocusNode();
|
|
|
}
|
|
}
|
|
|
if (oldWidget.controller != widget.controller) {
|
|
if (oldWidget.controller != widget.controller) {
|
|
@@ -170,7 +173,9 @@ class TerminalViewState extends State<TerminalView> {
|
|
|
|
|
|
|
|
@override
|
|
@override
|
|
|
void dispose() {
|
|
void dispose() {
|
|
|
- _focusNode.dispose();
|
|
|
|
|
|
|
+ if (widget.focusNode == null) {
|
|
|
|
|
+ _focusNode.dispose();
|
|
|
|
|
+ }
|
|
|
_shortcutManager.dispose();
|
|
_shortcutManager.dispose();
|
|
|
super.dispose();
|
|
super.dispose();
|
|
|
}
|
|
}
|