Browse Source

Merge pull request #1946 from afshin/terminal-bugfixes

Restoration bugfixes
Steven Silvester 8 years ago
parent
commit
02f671c35a
2 changed files with 13 additions and 13 deletions
  1. 2 2
      packages/application/src/shell.ts
  2. 11 11
      packages/terminal-extension/src/index.ts

+ 2 - 2
packages/application/src/shell.ts

@@ -113,7 +113,7 @@ class ApplicationShell extends Widget {
     this._tracker.activeChanged.connect(this._onActiveChanged, this);
     this._tracker.activeChanged.connect(this._onActiveChanged, this);
 
 
     // Connect main layout change listener.
     // Connect main layout change listener.
-    this._dockPanel.layoutModified.connect(() => this._save, this);
+    this._dockPanel.layoutModified.connect(this._save, this);
   }
   }
 
 
   /**
   /**
@@ -345,7 +345,7 @@ class ApplicationShell extends Widget {
     }
     }
     this._database = database;
     this._database = database;
     this._database.fetch().then(saved => {
     this._database.fetch().then(saved => {
-      if (this.isDisposed && !saved) {
+      if (this.isDisposed || !saved) {
         return;
         return;
       }
       }
 
 

+ 11 - 11
packages/terminal-extension/src/index.ts

@@ -107,19 +107,19 @@ function activate(app: JupyterLab, services: IServiceManager, mainMenu: IMainMen
       let term = new TerminalWidget();
       let term = new TerminalWidget();
       term.title.closable = true;
       term.title.closable = true;
       term.title.icon = TERMINAL_ICON_CLASS;
       term.title.icon = TERMINAL_ICON_CLASS;
-      tracker.add(term);
+      term.title.label = '...';
       shell.addToMainArea(term);
       shell.addToMainArea(term);
-      tracker.activate(term);
 
 
-      if (name) {
-        services.terminals.connectTo(name).then(session => {
-          term.session = session;
-        });
-      } else {
-        services.terminals.startNew().then(session => {
-          term.session = session;
-        });
-      }
+      let promise = name ?
+        services.terminals.connectTo(name)
+          .catch(() => services.terminals.startNew())
+        : services.terminals.startNew();
+
+      return promise.then(session => {
+        term.session = session;
+        tracker.add(term);
+        tracker.activate(term);
+      }).catch(() => { term.dispose(); });
     }
     }
   });
   });