diff options
| author | mrmr1993 | 2015-06-10 17:12:09 +0100 |
|---|---|---|
| committer | mrmr1993 | 2015-06-10 20:59:46 +0100 |
| commit | 6993359b4636ed53e558218beecc8ec9deb4ed70 (patch) | |
| tree | 31d46968796ed6e4dba6cd07d0970301653162c0 | |
| parent | 5bace210e738c56a8e7bee946f21041158fea7b1 (diff) | |
| download | vimium-6993359b4636ed53e558218beecc8ec9deb4ed70.tar.bz2 | |
Integrate executeFind into FindMode as FindMode.execute
| -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() |
