1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-01-06 22:14:12 +01:00

Fix removing search highlights from textareas.

Although firefox is happy to insert <span>s inside the DOM under
textareas and inserts it won't find them with xpath.
This commit is contained in:
Conrad Irwin
2009-04-02 00:09:33 +01:00
parent 23fe5a33c8
commit 6e1c999934

View File

@@ -137,6 +137,7 @@ function Search() //{{{
* Graeme McCutcheon <graememcc_firefox@graeme-online.co.uk>
*/
var highlightObj = {
spans: [],
search: function (aWord, matchCase)
{
var finder = services.create("find");
@@ -224,10 +225,32 @@ function Search() //{{{
var parent = before.parentNode;
aNode.appendChild(docfrag);
parent.insertBefore(aNode, before);
this.spans.push(aNode)
return aNode;
},
getSpans: function (doc) buffer.evaluateXPath("//*[@liberator:highlight='Search']", doc)
/**
* Clears all search highlighting.
*/
clear: function ()
{
this.spans.forEach(function (span)
{
if (span.parentNode)
{
let el = span.firstChild
while (el)
{
span.removeChild(el)
span.parentNode.insertBefore(el, span)
el = span.firstChild;
}
span.parentNode.removeChild(span);
}
})
this.spans = []
},
getSpans: function (doc) this.spans
};
/////////////////////////////////////////////////////////////////////////////}}}
@@ -499,11 +522,7 @@ function Search() //{{{
*/
clear: function ()
{
// FIXME: moves the selection
highlightObj.highlightDoc(window.content);
// need to manually collapse the selection if the document is not
// highlighted
getBrowser().fastFind.collapseSelection();
highlightObj.clear()
}
};
//}}}