diff options
| author | Matthew Ryan | 2015-06-13 14:16:07 +0100 | 
|---|---|---|
| committer | Matthew Ryan | 2015-06-13 14:16:07 +0100 | 
| commit | 107c8abd7ea1f2dc6d6a7e36b7cdeb93e1ca9335 (patch) | |
| tree | ebc3ba8787099d253325d3ba049f2fc110d9f111 /pages/hud.coffee | |
| parent | 26a0653318be7bae4254e2e643dcb5ae5e2498e9 (diff) | |
| parent | 8151d592b3ec2b37d4c41123cf94ed23d119d3c9 (diff) | |
| download | vimium-107c8abd7ea1f2dc6d6a7e36b7cdeb93e1ca9335.tar.bz2 | |
Merge pull request #1 from smblott-github/hud-iframe-input
Hud iframe input
Diffstat (limited to 'pages/hud.coffee')
| -rw-r--r-- | pages/hud.coffee | 24 | 
1 files changed, 20 insertions, 4 deletions
| diff --git a/pages/hud.coffee b/pages/hud.coffee index f9c29cce..76ed693f 100644 --- a/pages/hud.coffee +++ b/pages/hud.coffee @@ -1,5 +1,17 @@  findMode = null +# Set the input element's text, and move the cursor to the end. +setTextInInputElement = (inputElement, text) -> +  inputElement.textContent = text +  # Move the cursor to the end.  Based on one of the solutions here: +  # http://stackoverflow.com/questions/1125292/how-to-move-cursor-to-end-of-contenteditable-entity +  range = document.createRange() +  range.selectNodeContents inputElement +  range.collapse false +  selection = window.getSelection() +  selection.removeAllRanges() +  selection.addRange range +  document.addEventListener "keydown", (event) ->    inputElement = document.getElementById "hud-find-input"    return unless inputElement? # Don't do anything if we're not in find mode. @@ -10,7 +22,6 @@ document.addEventListener "keydown", (event) ->    if (event.keyCode in [keyCodes.backspace, keyCodes.deleteKey] and inputElement.textContent.length == 0) or       event.keyCode == keyCodes.enter or KeyboardUtils.isEscape event -    DomUtils.suppressEvent event      UIComponentServer.postMessage        name: "hideFindMode"        event: transferrableEvent @@ -20,13 +31,18 @@ document.addEventListener "keydown", (event) ->      if rawQuery = FindModeHistory.getQuery findMode.historyIndex + 1        findMode.historyIndex += 1        findMode.partialQuery = findMode.rawQuery if findMode.historyIndex == 0 -      inputElement.textContent = rawQuery +      setTextInInputElement inputElement, rawQuery        findMode.executeQuery()    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 -    inputElement.textContent = rawQuery +    setTextInInputElement inputElement, rawQuery      findMode.executeQuery() +  else +    return + +  DomUtils.suppressEvent event +  false  handlers =    show: (data) -> @@ -46,7 +62,7 @@ handlers =      inputElement = document.createElement "span"      inputElement.contentEditable = "plaintext-only" -    inputElement.textContent = data.text +    setTextInInputElement inputElement, data.text ? ""      inputElement.id = "hud-find-input"      hud.appendChild inputElement | 
