diff options
Diffstat (limited to 'content_scripts/vimium_frontend.coffee')
| -rw-r--r-- | content_scripts/vimium_frontend.coffee | 15 | 
1 files changed, 10 insertions, 5 deletions
| diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee index 78901113..b2590edb 100644 --- a/content_scripts/vimium_frontend.coffee +++ b/content_scripts/vimium_frontend.coffee @@ -723,9 +723,11 @@ handleEnterForFindMode = ->    FindModeHistory.saveQuery findModeQuery.rawQuery  class FindMode extends Mode -  constructor: -> +  constructor: (options = {}) ->      @historyIndex = -1      @partialQuery = "" +    @scrollX = window.scrollX +    @scrollY = window.scrollY      super        name: "find"        badge: "/" @@ -755,10 +757,12 @@ class FindMode extends Mode            DomUtils.suppressPropagation(event)            handlerStack.stopBubblingAndFalse -      keypress: (event) -> -        handlerStack.neverContinueBubbling -> +      keypress: (event) => +        handlerStack.neverContinueBubbling =>            if event.keyCode > 31              keyChar = String.fromCharCode event.charCode +            # Primarily for visual mode. If there's no match, we return to the original viewport. +            window.scrollTo @scrollX, @scrollY if options.returnToViewport              handleKeyCharForFindMode keyChar if keyChar        keyup: (event) => @suppressEvent @@ -990,12 +994,13 @@ findModeRestoreSelection = (range = findModeInitialRange) ->    selection.addRange range  # Enters find mode.  Returns the new find-mode instance. -window.enterFindMode = -> +# Experimental.  Try "returnToViewport: true" for *all* find operations. +window.enterFindMode = (options = { returnToViewport: true }) ->    # Save the selection, so performFindInPlace can restore it.    findModeSaveSelection()    findModeQuery = { rawQuery: "" }    HUD.show("/") -  new FindMode() +  new FindMode options  exitFindMode = ->    HUD.hide() | 
