diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2017-09-03 17:41:01 +0900 |
---|---|---|
committer | Shin'ya Ueoka <ueokande@i-beam.org> | 2017-09-03 17:41:01 +0900 |
commit | 29f82d3a7f339fa99759b589923f0d8657da28f5 (patch) | |
tree | 3cdcc1f557d148cd70a16b767e88b19220761e51 /src | |
parent | e0bff54a827bcf15931ed651d4a5279b352a2961 (diff) |
reopen command line after error
Diffstat (limited to 'src')
-rw-r--r-- | src/console/console-frame.js | 10 | ||||
-rw-r--r-- | src/console/console.js | 8 | ||||
-rw-r--r-- | src/content/index.js | 4 |
3 files changed, 17 insertions, 5 deletions
diff --git a/src/console/console-frame.js b/src/console/console-frame.js index aabb96a..ea9f523 100644 --- a/src/console/console-frame.js +++ b/src/console/console-frame.js @@ -10,6 +10,8 @@ export default class ConsoleFrame { this.element = element; + this.errorShown = true; + this.hide(); } @@ -21,6 +23,7 @@ export default class ConsoleFrame { text: text }; messages.send(this.element.contentWindow, message); + this.errorShown = false; } showError(text) { @@ -31,6 +34,8 @@ export default class ConsoleFrame { text: text }; messages.send(this.element.contentWindow, message); + this.errorShown = true; + this.element.blur(); } showFrame() { @@ -40,5 +45,10 @@ export default class ConsoleFrame { hide() { this.element.style.display = 'none'; this.element.blur(); + this.errorShown = false; + } + + isErrorShown() { + return this.element.style.display === 'block' && this.errorShown; } } diff --git a/src/console/console.js b/src/console/console.js index 61c5e24..e0227aa 100644 --- a/src/console/console.js +++ b/src/console/console.js @@ -57,15 +57,15 @@ window.addEventListener('load', () => { }); const showCommand = (text) => { - let input = window.document.querySelector('#vimvixen-console-command-input'); - input.value = text; - input.focus(); - let command = window.document.querySelector('#vimvixen-console-command'); command.style.display = 'block'; let error = window.document.querySelector('#vimvixen-console-error'); error.style.display = 'none'; + + let input = window.document.querySelector('#vimvixen-console-command-input'); + input.value = text; + input.focus(); } const showError = (text) => { diff --git a/src/content/index.js b/src/content/index.js index 26c3840..8b3eb58 100644 --- a/src/content/index.js +++ b/src/content/index.js @@ -91,7 +91,9 @@ window.addEventListener("keypress", (e) => { messages.receive(window, (message) => { switch (message.type) { case 'vimvixen.command.blur': - vvConsole.hide(); + if (!vvConsole.isErrorShown()) { + vvConsole.hide(); + } break; case 'vimvixen.command.enter': browser.runtime.sendMessage({ |