diff options
| author | Alon Levy <alon@pobox.com> | 2014-12-08 15:50:17 +0200 |
|---|---|---|
| committer | Alon Levy <alon@pobox.com> | 2014-12-08 16:11:10 +0200 |
| commit | f902c0cfe5ce6aed0fe8a517d4f28565f24b8ebb (patch) | |
| tree | f91a7e7595de6f70f86485d43312e9c6ce1f0b40 | |
| parent | e1750961ac7c3a7eeec1426d0a9c12c46fb5e688 (diff) | |
completer: escape hides; anything else shows
| -rw-r--r-- | src/view/completer.js | 20 |
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 { |
