aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2017-09-03 17:41:01 +0900
committerShin'ya Ueoka <ueokande@i-beam.org>2017-09-03 17:41:01 +0900
commit29f82d3a7f339fa99759b589923f0d8657da28f5 (patch)
tree3cdcc1f557d148cd70a16b767e88b19220761e51 /src
parente0bff54a827bcf15931ed651d4a5279b352a2961 (diff)
reopen command line after error
Diffstat (limited to 'src')
-rw-r--r--src/console/console-frame.js10
-rw-r--r--src/console/console.js8
-rw-r--r--src/content/index.js4
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({