mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1047469 - Implement search terms hilighting r=dao
This commit is contained in:
parent
8609cb29af
commit
f8731ea2b6
@ -186,6 +186,13 @@
|
||||
let textNode = this.editor.rootElement.firstChild;
|
||||
let value = textNode.textContent;
|
||||
|
||||
function addSelectionRange(start, end) {
|
||||
let range = document.createRange();
|
||||
range.setStart(textNode, start);
|
||||
range.setEnd(textNode, end);
|
||||
selection.addRange(range);
|
||||
}
|
||||
|
||||
let protocol = value.match(/^[a-z\d.+\-]+:(?=[^\d])/);
|
||||
if (protocol &&
|
||||
["http:", "https:", "ftp:"].indexOf(protocol[0]) == -1)
|
||||
@ -215,19 +222,27 @@
|
||||
|
||||
let rangeLength = preDomain.length + subDomain.length;
|
||||
if (rangeLength) {
|
||||
let range = document.createRange();
|
||||
range.setStart(textNode, 0);
|
||||
range.setEnd(textNode, rangeLength);
|
||||
selection.addRange(range);
|
||||
addSelectionRange(0, rangeLength);
|
||||
}
|
||||
|
||||
let startRest = preDomain.length + domain.length;
|
||||
if (startRest < value.length) {
|
||||
let range = document.createRange();
|
||||
range.setStart(textNode, startRest);
|
||||
range.setEnd(textNode, value.length);
|
||||
selection.addRange(range);
|
||||
}
|
||||
Services.search.init(() => {
|
||||
// Bail out if the URL changed in the meantime.
|
||||
if (value != textNode.textContent) {
|
||||
return;
|
||||
}
|
||||
|
||||
let startRest = preDomain.length + domain.length;
|
||||
let result = Services.search.parseSubmissionURL(value);
|
||||
|
||||
if (result.termsOffset > -1 && result.termsLength) {
|
||||
addSelectionRange(startRest, result.termsOffset);
|
||||
startRest = result.termsOffset + result.termsLength;
|
||||
}
|
||||
|
||||
if (startRest < value.length) {
|
||||
addSelectionRange(startRest, value.length);
|
||||
}
|
||||
});
|
||||
]]></body>
|
||||
</method>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user