From 5d13995b56b3fbbc6c574236568992dea29d1379 Mon Sep 17 00:00:00 2001 From: Ângelo Otávio Nuffer Nunes Date: Sun, 15 Jan 2012 18:04:41 +0800 Subject: Add in angelonuffer's code, and add angelonuffer to CREDITS. --- vimiumFrontend.js | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'vimiumFrontend.js') diff --git a/vimiumFrontend.js b/vimiumFrontend.js index e217e955..a22cbd8f 100644 --- a/vimiumFrontend.js +++ b/vimiumFrontend.js @@ -8,6 +8,7 @@ var getCurrentUrlHandlers = []; // function(url) var insertModeLock = null; var findMode = false; +var findModeMatchIndex = 0; var findModeQuery = ""; var findModeQueryHasResults = false; var isShowingHelpDialog = false; @@ -339,7 +340,7 @@ function copyCurrentUrl() { var getCurrentUrlPort = chrome.extension.connect({ name: "getCurrentTabUrl" }); getCurrentUrlPort.postMessage({}); - HUD.showForDuration("Yanked URL", 1000); + HUD.showForDuration("Yanked URL", 1000); } function toggleViewSourceCallback(url) { @@ -619,8 +620,8 @@ function handleDeleteForFindMode() { } function handleEnterForFindMode() { - exitFindMode(); performFindInPlace(); + exitFindMode(); } function performFindInPlace() { @@ -639,7 +640,21 @@ function performFindInPlace() { } function executeFind(backwards) { - findModeQueryHasResults = window.find(findModeQuery, false, backwards, true, false, true, false); + var pattern = new RegExp(findModeQuery, "g"); + var text = document.body.textContent; + var result = text.match(pattern); + if ( ! findMode ) + if (backwards) + if (findModeMatchIndex > 0) + findModeMatchIndex -= 1; + else + findModeMatchIndex = result.length - 1; + else + if (findModeMatchIndex < result.length - 1) + findModeMatchIndex += 1; + else + findModeMatchIndex = 0; + findModeQueryHasResults = window.find(result[findModeMatchIndex], false, backwards, true, false, true, false); } function focusFoundLink() { -- cgit v1.2.3