From 8d3665862400b46216c1c42d063890dee1850918 Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Fri, 16 Jan 2015 16:59:27 +0000 Subject: Instead, just restore the selection, for performFindInPlace(). --- content_scripts/vimium_frontend.coffee | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'content_scripts') 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("/") -- cgit v1.2.3