diff options
Diffstat (limited to 'pages/hud.coffee')
| -rw-r--r-- | pages/hud.coffee | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/pages/hud.coffee b/pages/hud.coffee index a3599c8a..19dff25b 100644 --- a/pages/hud.coffee +++ b/pages/hud.coffee @@ -1,3 +1,5 @@ +findMode = null + document.addEventListener "keydown", (event) -> inputElement = document.getElementById "hud-find-input" return unless inputElement? # Don't do anything if we're not in find mode. @@ -6,8 +8,7 @@ document.addEventListener "keydown", (event) -> transferrableEvent[key] = value if typeof value in ["number", "string"] if (event.keyCode in [keyCodes.backspace, keyCodes.deleteKey] and inputElement.textContent.length == 0) or - event.keyCode in [keyCodes.enter, keyCodes.upArrow, keyCodes.downArrow] or - KeyboardUtils.isEscape event + event.keyCode == keyCodes.enter or KeyboardUtils.isEscape event DomUtils.suppressEvent event UIComponentServer.postMessage @@ -16,6 +17,16 @@ document.addEventListener "keydown", (event) -> # Replace \u00A0 ( ) with a normal space. query: inputElement.textContent.replace "\u00A0", " " + else if event.keyCode == keyCodes.upArrow + if rawQuery = FindModeHistory.getQuery findMode.historyIndex + 1 + findMode.historyIndex += 1 + findMode.partialQuery = findModeQuery.rawQuery if findMode.historyIndex == 0 + handlers.showFindMode rawQuery + else if event.keyCode == keyCodes.downArrow + findMode.historyIndex = Math.max -1, findMode.historyIndex - 1 + rawQuery = if 0 <= findMode.historyIndex then FindModeHistory.getQuery findMode.historyIndex else findMode.partialQuery + handlers.showFindMode rawQuery + handlers = show: (data) -> document.getElementById("hud").innerText = data.text @@ -50,6 +61,10 @@ handlers = # Replace \u00A0 ( ) with a normal space. UIComponentServer.postMessage {name: "search", query: inputElement.textContent.replace "\u00A0", " "} + findMode = + historyIndex: -1 + partialQuery: "" + updateMatchesCount: ({matchCount, showMatchText}) -> countElement = document.getElementById "hud-match-count" return unless countElement? # Don't do anything if we're not in find mode. |
