diff options
| author | Jez Ng | 2012-01-26 02:46:49 -0500 | 
|---|---|---|
| committer | Jez Ng | 2012-01-26 13:18:35 -0500 | 
| commit | 1e04eb8c3b57701206ddd65bf3b3292f0678e3e1 (patch) | |
| tree | 1d41e3ca581f3cb1030b9df7d12529473c59787b /vimiumFrontend.js | |
| parent | baace1c5d2760116b95c2ee2305d05ae348eab97 (diff) | |
| download | vimium-1e04eb8c3b57701206ddd65bf3b3292f0678e3e1.tar.bz2 | |
Color find matches orange.
The brighter color makes them more visible. The orange is chosen to
match Chrome's default color.
Diffstat (limited to 'vimiumFrontend.js')
| -rw-r--r-- | vimiumFrontend.js | 28 | 
1 files changed, 27 insertions, 1 deletions
diff --git a/vimiumFrontend.js b/vimiumFrontend.js index 335f33f8..65ac240c 100644 --- a/vimiumFrontend.js +++ b/vimiumFrontend.js @@ -689,6 +689,15 @@ function handleKeyCharForFindMode(keyChar) {  function handleEscapeForFindMode() {    exitFindMode(); +  document.body.classList.remove("vimiumFindMode"); +  // removing the class does not re-color existing selections. we recreate the current selection so it reverts +  // back to the default color. +  var selection = window.getSelection(); +  if (!selection.isCollapsed) { +    var range = window.getSelection().getRangeAt(0); +    window.getSelection().removeAllRanges(); +    window.getSelection().addRange(range); +  }    focusFoundLink() || selectFoundInputElement();  } @@ -711,6 +720,7 @@ function handleDeleteForFindMode() {  function handleEnterForFindMode() {    exitFindMode();    focusFoundLink(); +  document.body.classList.add("vimiumFindMode");    settings.set("findModeRawQuery", findModeQuery.rawQuery);  } @@ -742,12 +752,22 @@ function performFindInPlace() {  // :options is an optional dict. valid parameters are 'caseSensitive' and 'backwards'.  function executeFind(query, options) { +  options = options || {}; +    // rather hacky, but this is our way of signalling to the insertMode listener not to react to the focus    // changes that find() induces.    var oldFindMode = findMode;    findMode = true; -  options = options || {}; + +  document.body.classList.add("vimiumFindMode"); + +  // ignore the selectionchange event generated by find() +  document.removeEventListener("selectionchange",restoreDefaultSelectionHighlight, true);    var rv = window.find(query, options.caseSensitive, options.backwards, true, false, true, false); +  setTimeout(function() { +    document.addEventListener("selectionchange", restoreDefaultSelectionHighlight, true); +  }, 0); +    findMode = oldFindMode;    // we need to save the anchor node here because <esc> seems to nullify it, regardless of whether we do    // preventDefault() @@ -755,6 +775,10 @@ function executeFind(query, options) {    return rv;  } +function restoreDefaultSelectionHighlight() { +  document.body.classList.remove("vimiumFindMode"); +} +  function focusFoundLink() {    if (findModeQueryHasResults) {      var link = getLinkFromSelection(); @@ -994,7 +1018,9 @@ function hideHelpDialog(clickEvent) {      clickEvent.preventDefault();  } +// do our best to return the document to its 'default' state.  function handleEscapeForNormalMode() { +  window.getSelection().collapse();    if (document.activeElement !== document.body)      document.activeElement.blur();    else if (window.top !== window.self)  | 
