From 2b080175d7ee2dc062a3b417b4ceb104ae7fcf66 Mon Sep 17 00:00:00 2001 From: nightwing Date: Fri, 16 Dec 2016 23:34:52 +0000 Subject: [PATCH] fix console focus issue --- plugins/c9.ide.console/console.js | 28 +++++++++++++++++++--------- plugins/c9.ide.console/console.xml | 3 ++- plugins/c9.ide.ui/lib_apf.js | 2 +- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/plugins/c9.ide.console/console.js b/plugins/c9.ide.console/console.js index c0c137a0..b5020ba9 100644 --- a/plugins/c9.ide.console/console.js +++ b/plugins/c9.ide.console/console.js @@ -250,7 +250,9 @@ define(function(require, module, exports) { settings.set("state/console/@maximized", true); plugin.getElement("btnConsoleMax").setValue(true); - setTimeout(function(){ + focusConsole(); + + setTimeout(function() { getPanes().forEach(function(pane) { var tab = pane.activeTab; if (tab) @@ -277,6 +279,8 @@ define(function(require, module, exports) { settings.set("state/console/@maximized", false); plugin.getElement("btnConsoleMax").setValue(false); + focusConsole(); + getPanes().forEach(function(pane) { var tab = pane.activeTab; if (tab) @@ -286,6 +290,18 @@ define(function(require, module, exports) { emit("resize"); } + function focusConsole() { + var oldFocus = tabs.focussedTab; + if (oldFocus && getPanes().indexOf(oldFocus.pane) != -1) + return tabs.focusTab(oldFocus); + getPanes().some(function(pane) { + if (pane.getTab()) { + tabs.focusTab(pane.getTab()); + return true; + } + }) || tabs.focusTab(null); + } + function hide(immediate) { show(immediate, true); } function show(immediate, shouldHide) { @@ -303,14 +319,8 @@ define(function(require, module, exports) { pane._visible = !shouldHide; }); - if (!shouldHide && !tabs.focussedTab) { - getPanes().some(function(pane) { - if (pane.getTab()) { - tabs.focusTab(pane.getTab()); - return true; - } - }); - } + if (!shouldHide && !tabs.focussedTab) + focusConsole(); var finish = function() { if (onFinishTimer) diff --git a/plugins/c9.ide.console/console.xml b/plugins/c9.ide.console/console.xml index 78561c9c..72718f63 100644 --- a/plugins/c9.ide.console/console.xml +++ b/plugins/c9.ide.console/console.xml @@ -1,12 +1,13 @@ - + \ No newline at end of file diff --git a/plugins/c9.ide.ui/lib_apf.js b/plugins/c9.ide.ui/lib_apf.js index 7072aa37..f2ba93cd 100644 --- a/plugins/c9.ide.ui/lib_apf.js +++ b/plugins/c9.ide.ui/lib_apf.js @@ -21558,7 +21558,7 @@ apf.window = function(){ canSelect = false; } - if (amlNode && amlNode.name === "editor::ace" || amlNode.class == "c9terminalcontainer") { + if (amlNode && (amlNode.name === "editor::ace" || amlNode.class == "c9terminalcontainer")) { canSelect = true; }