summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2014-12-08 15:50:17 +0200
committerAlon Levy <alon@pobox.com>2014-12-08 16:11:10 +0200
commitf902c0cfe5ce6aed0fe8a517d4f28565f24b8ebb (patch)
treef91a7e7595de6f70f86485d43312e9c6ce1f0b40
parente1750961ac7c3a7eeec1426d0a9c12c46fb5e688 (diff)
completer: escape hides; anything else shows
-rw-r--r--src/view/completer.js20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/view/completer.js b/src/view/completer.js
index 225609e1..cf7815d1 100644
--- a/src/view/completer.js
+++ b/src/view/completer.js
@@ -54,6 +54,9 @@ var completer = (function (input_element, dropdown, base_config) {
next_option();
ret = false;
break;
+ case 27: // Escape
+ hide();
+ break;
default:
// This catches cursor move due to keyboard events. no event for cursor movement itself
// below we catch cursor moves due to mouse click
@@ -89,6 +92,16 @@ var completer = (function (input_element, dropdown, base_config) {
return ret;
}
+ function show() {
+ if (dropdown.children().length > 0) {
+ dropdown.show();
+ }
+ }
+ function hide()
+ {
+ dropdown.hide();
+ }
+
/***
* #this is a #
* ^
@@ -103,7 +116,7 @@ var completer = (function (input_element, dropdown, base_config) {
var hash = text.slice(0, cursor).lastIndexOf(config.triggerStart);
// TODO check if current completion has been invalidated
_invalidateSelection();
- dropdown.hide();
+ hide();
dropdown_raw.innerHTML = ""; // remove all elements
if (hash == -1 && config.triggerStart != ' ') { // space matches start of string too
return;
@@ -127,9 +140,7 @@ var completer = (function (input_element, dropdown, base_config) {
elem.onclick = function() { _applySuggestion(index); };
input_element.focus();
});
- if (dropdown.children().length > 0) {
- dropdown.show();
- }
+ show();
}
function _invalidateSelection() {
@@ -143,6 +154,7 @@ var completer = (function (input_element, dropdown, base_config) {
if (n == 0) {
return;
}
+ show();
if (selected_index == -1) {
next = default_value;
} else {