diff options
Diffstat (limited to 'content_scripts')
| -rw-r--r-- | content_scripts/hud.coffee | 6 | ||||
| -rw-r--r-- | content_scripts/mode_find.coffee | 15 | ||||
| -rw-r--r-- | content_scripts/mode_visual_edit.coffee | 2 | 
3 files changed, 14 insertions, 9 deletions
| diff --git a/content_scripts/hud.coffee b/content_scripts/hud.coffee index cd34efe8..bfad71b7 100644 --- a/content_scripts/hud.coffee +++ b/content_scripts/hud.coffee @@ -33,9 +33,7 @@ HUD =      @tween.fade 1.0, 150    search: (data) -> -    window.scrollTo @findMode.scrollX, @findMode.scrollY if @findMode.options.returnToViewport -    FindMode.updateQuery data.query -    @findMode.findInPlace() +    @findMode.findInPlace data.query      # Show the number of matches in the HUD UI.      matchCount = if FindMode.query.parsedQuery.length > 0 then FindMode.query.matchCount else 0 @@ -59,7 +57,7 @@ HUD =        @tween.fade 0, 150, => @hide true, updateIndicator    hideFindMode: (data) -> -    window.scrollTo @findMode.scrollX, @findMode.scrollY if @findMode.options.returnToViewport +    @findMode.checkReturnToViewPort()      # An element element won't receive a focus event if the search landed on it while we were in the HUD      # iframe. To end up with the correct modes active, we create a focus/blur event manually after refocusing diff --git a/content_scripts/mode_find.coffee b/content_scripts/mode_find.coffee index ff9506e7..bba457b6 100644 --- a/content_scripts/mode_find.coffee +++ b/content_scripts/mode_find.coffee @@ -60,14 +60,15 @@ class FindMode extends Mode      matchCount: 0      hasResults: false -  constructor: (@options = {}) -> +  constructor: (options = {}) -> +    console.log "constructor", @options      # Save the selection, so findInPlace can restore it.      @initialRange = getCurrentRange()      FindMode.query = rawQuery: "" -    if @options.returnToViewport +    if options.returnToViewport        @scrollX = window.scrollX        @scrollY = window.scrollY -    super +    super extend options,        name: "find"        indicator: false        exitOnClick: true @@ -84,7 +85,10 @@ class FindMode extends Mode      selection.removeAllRanges()      selection.addRange range -  findInPlace: -> +  findInPlace: (query) -> +    # If requested, restore the scroll position (so that failed searches leave the scroll position unchanged). +    @checkReturnToViewPort() +    FindMode.updateQuery query      # Restore the selection.  That way, we're always searching forward from the same place, so we find the right      # match as the user adds matching characters, or removes previously-matched characters. See #1434.      @restoreSelection() @@ -192,6 +196,9 @@ class FindMode extends Mode    @restoreDefaultSelectionHighlight: -> document.body.classList.remove("vimiumFindMode") +  checkReturnToViewPort: -> +    window.scrollTo @scrollX, @scrollY if @options.returnToViewport +  getCurrentRange = ->    selection = getSelection()    if selection.type == "None" diff --git a/content_scripts/mode_visual_edit.coffee b/content_scripts/mode_visual_edit.coffee index eaaf94d4..170071ac 100644 --- a/content_scripts/mode_visual_edit.coffee +++ b/content_scripts/mode_visual_edit.coffee @@ -353,7 +353,7 @@ class Movement extends CountPrefix        do =>          doFind = (count, backwards) =>            initialRange = @selection.getRangeAt(0).cloneRange() -          for [0...count] by 1 +          for [0...count]              unless FindMode.execute null, {colorSelection: false, backwards}                @setSelectionRange initialRange                HUD.showForDuration("No matches for '#{FindMode.query.rawQuery}'", 1000) | 
