Stop scrolling the document when "Highlight All" is toggled in the findbar (issue 5561)

This is consistent with the general, e.g. HTML, search functionality of the Firefox browser.
This commit is contained in:
Jonas Jenwald 2018-10-30 11:08:16 +01:00
parent 2194aef03e
commit de6b0fd12d

View File

@ -117,7 +117,9 @@ class PDFFindController {
this._dirtyMatch = true;
}
this._state = state;
this._updateUIState(FindState.PENDING);
if (cmd !== 'findhighlightallchange') {
this._updateUIState(FindState.PENDING);
}
this._firstPageCapability.promise.then(() => {
// If the document was closed before searching began, or if the search
@ -129,6 +131,7 @@ class PDFFindController {
this._extractText();
const findbarClosed = !this._highlightMatches;
const pendingTimeout = !!this._findTimeout;
if (this._findTimeout) {
clearTimeout(this._findTimeout);
@ -153,6 +156,15 @@ class PDFFindController {
if (findbarClosed && this._state.highlightAll) {
this._updateAllPages();
}
} else if (cmd === 'findhighlightallchange') {
// If there was a pending search operation, synchronously trigger a new
// search *first* to ensure that the correct matches are highlighted.
if (pendingTimeout) {
this._nextMatch();
} else {
this._highlightMatches = true;
}
this._updateAllPages(); // Update the highlighting on all active pages.
} else {
this._nextMatch();
}
@ -217,6 +229,8 @@ class PDFFindController {
break;
}
return false;
case 'findhighlightallchange':
return false;
}
return true;
}