Selaa lähdekoodia

Merge pull request #124 from tauu/fix-dispose-focus-node

fix: only dispose the FocusNodes which TerminalView creates
xuty 3 vuotta sitten
vanhempi
sitoutus
8df279e967
1 muutettua tiedostoa jossa 6 lisäystä ja 1 poistoa
  1. 6 1
      lib/src/terminal_view.dart

+ 6 - 1
lib/src/terminal_view.dart

@@ -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();
   }
   }