aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts
diff options
context:
space:
mode:
authorStephen Blott2015-01-16 16:59:27 +0000
committerStephen Blott2015-01-16 16:59:27 +0000
commit8d3665862400b46216c1c42d063890dee1850918 (patch)
tree572efe878913e834235f3579048975a920f7809b /content_scripts
parent41a2c5a3f77a15b2ad5f386f1a2a194df49d107d (diff)
downloadvimium-8d3665862400b46216c1c42d063890dee1850918.tar.bz2
Instead, just restore the selection, for performFindInPlace().
Diffstat (limited to 'content_scripts')
-rw-r--r--content_scripts/vimium_frontend.coffee26
1 files changed, 22 insertions, 4 deletions
diff --git a/content_scripts/vimium_frontend.coffee b/content_scripts/vimium_frontend.coffee
index ddedb1ef..a6ddffd3 100644
--- a/content_scripts/vimium_frontend.coffee
+++ b/content_scripts/vimium_frontend.coffee
@@ -11,6 +11,7 @@ findMode = false
findModeQuery = { rawQuery: "", matchCount: 0 }
findModeQueryHasResults = false
findModeAnchorNode = null
+findModeInitialRange = null
isShowingHelpDialog = false
keyPort = null
# Users can disable Vimium on URL patterns via the settings page. The following two variables
@@ -702,11 +703,8 @@ handleEnterForFindMode = ->
settings.set("findModeRawQuery", findModeQuery.rawQuery)
performFindInPlace = ->
+ findModeRestoreSelection()
query = if findModeQuery.isRegex then getNextQueryFromRegexMatches(0) else findModeQuery.parsedQuery
-
- selection = window.getSelection()
- selection.collapseToStart() if selection.type == "Range"
-
findModeQueryHasResults = executeFind(query, { caseSensitive: !findModeQuery.ignoreCase })
# :options is an optional dict. valid parameters are 'caseSensitive' and 'backwards'.
@@ -920,7 +918,27 @@ showFindModeHUDForQuery = ->
else
HUD.show("/" + findModeQuery.rawQuery + " (No Matches)")
+getCurrentRange = ->
+ selection = getSelection()
+ if selection.type == "None"
+ range = document.createRange()
+ range.setStart document.body, 0
+ range.setEnd document.body, 0
+ range
+ else
+ selection.collapseToStart() if selection.type == "Range"
+ range = selection.getRangeAt 0
+
+findModeSaveSelection = ->
+ findModeInitialRange = getCurrentRange()
+
+findModeRestoreSelection = (range = findModeInitialRange) ->
+ selection = getSelection()
+ selection.removeAllRanges()
+ selection.addRange range
+
window.enterFindMode = ->
+ findModeSaveSelection()
findModeQuery = { rawQuery: "" }
findMode = true
HUD.show("/")