diff options
| -rw-r--r-- | content_scripts/mode_find.coffee | 34 | ||||
| -rw-r--r-- | content_scripts/mode_visual_edit.coffee | 2 | ||||
| -rw-r--r-- | content_scripts/vimium_frontend.coffee | 34 | 
3 files changed, 35 insertions, 35 deletions
| diff --git a/content_scripts/mode_find.coffee b/content_scripts/mode_find.coffee index e6884a83..79d2be7e 100644 --- a/content_scripts/mode_find.coffee +++ b/content_scripts/mode_find.coffee @@ -89,7 +89,7 @@ class FindMode extends Mode      # match as the user adds matching characters, or removes previously-matched characters. See #1434.      @restoreSelection()      query = if FindMode.query.isRegex then FindMode.getNextQueryFromRegexMatches(0) else FindMode.query.parsedQuery -    FindMode.query.hasResults = executeFind query +    FindMode.query.hasResults = FindMode.execute query    # should be called whenever rawQuery is modified.    @updateQuery: -> @@ -161,6 +161,38 @@ class FindMode extends Mode    @saveQuery: -> FindModeHistory.saveQuery @query.rawQuery +  # :options is an optional dict. valid parameters are 'caseSensitive' and 'backwards'. +  @execute: (query, options) -> +    result = null +    options = extend { +      backwards: false +      caseSensitive: !@query.ignoreCase +      colorSelection: true +    }, options +    query ?= FindMode.getQuery options.backwards + +    if options.colorSelection +      document.body.classList.add("vimiumFindMode") +      # ignore the selectionchange event generated by find() +      document.removeEventListener("selectionchange", @restoreDefaultSelectionHighlight, true) + +    result = window.find(query, options.caseSensitive, options.backwards, true, false, true, false) + +    if options.colorSelection +      setTimeout( +        -> document.addEventListener("selectionchange", @restoreDefaultSelectionHighlight, true) +      , 0) + +    # We are either in normal mode ("n"), or find mode ("/").  We are not in insert mode.  Nevertheless, if a +    # previous find landed in an editable element, then that element may still be activated.  In this case, we +    # don't want to leave it behind (see #1412). +    if document.activeElement and DomUtils.isEditable document.activeElement +      document.activeElement.blur() unless DomUtils.isSelected document.activeElement + +    result + +  @restoreDefaultSelectionHighlight: -> document.body.classList.remove("vimiumFindMode") +  getCurrentRange = ->    selection = getSelection()    if selection.type == "None" diff --git a/content_scripts/mode_visual_edit.coffee b/content_scripts/mode_visual_edit.coffee index 0df93ab7..eaaf94d4 100644 --- a/content_scripts/mode_visual_edit.coffee +++ b/content_scripts/mode_visual_edit.coffee @@ -354,7 +354,7 @@ class Movement extends CountPrefix          doFind = (count, backwards) =>            initialRange = @selection.getRangeAt(0).cloneRange()            for [0...count] by 1 -            unless executeFind null, {colorSelection: false, backwards} +            unless FindMode.execute null, {colorSelection: false, backwards}                @setSelectionRange initialRange                HUD.showForDuration("No matches for '#{FindMode.query.rawQuery}'", 1000)                return diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee index 65527880..6f50fb9d 100644 --- a/content_scripts/vimium_frontend.coffee +++ b/content_scripts/vimium_frontend.coffee @@ -637,38 +637,6 @@ window.handleEnterForFindMode = ->    document.body.classList.add("vimiumFindMode")    FindMode.saveQuery() -# :options is an optional dict. valid parameters are 'caseSensitive' and 'backwards'. -window.executeFind = (query, options) -> -  result = null -  options = extend { -    backwards: false -    caseSensitive: !FindMode.query.ignoreCase -    colorSelection: true -  }, options -  query ?= FindMode.getQuery options.backwards - -  if options.colorSelection -    document.body.classList.add("vimiumFindMode") -    # ignore the selectionchange event generated by find() -    document.removeEventListener("selectionchange",restoreDefaultSelectionHighlight, true) - -  result = window.find(query, options.caseSensitive, options.backwards, true, false, true, false) - -  if options.colorSelection -    setTimeout( -      -> document.addEventListener("selectionchange", restoreDefaultSelectionHighlight, true) -    , 0) - -  # We are either in normal mode ("n"), or find mode ("/").  We are not in insert mode.  Nevertheless, if a -  # previous find landed in an editable element, then that element may still be activated.  In this case, we -  # don't want to leave it behind (see #1412). -  if document.activeElement and DomUtils.isEditable document.activeElement -    document.activeElement.blur() unless DomUtils.isSelected document.activeElement - -  result - -restoreDefaultSelectionHighlight = -> document.body.classList.remove("vimiumFindMode") -  focusFoundLink = ->    if (FindMode.query.hasResults)      link = getLinkFromSelection() @@ -686,7 +654,7 @@ selectFoundInputElement = ->  findAndFocus = (backwards) ->    Marks.setPreviousPosition() -  FindMode.query.hasResults = executeFind null, {backwards} +  FindMode.query.hasResults = FindMode.execute null, {backwards}    if FindMode.query.hasResults      focusFoundLink() | 
