Remove PDFViewerApplication.updateScaleControls
(issue 6158)
*With this patch we're getting very close to fixing 6158.* The only use-case for `PDFViewerApplication.updateScaleControls` is to try and avoid calling `selectScaleOption` from the `scalechange` event handler in viewer.js. This will *only* happen when the user has manually changed the scale by using the `<select>` dropdown, which means that in reality this is just a micro optimization. Furthermore, `selectScaleOption` is only skipped for the "named" scale values (e.g. `auto`, `page-actual`, `page-fit`, `page-width`), thus further reducing the value of this code. Also, since we're updating the scale `<select>` dropdown from an event handler, we're currently depending on the event being dispatched (and handled) completely before the next `scalechange` event. Relying on the execution order of the code in this way, even though it currently works, seems unfortunate since it *could* potentially cause the internal scale value and the UI from getting out of sync.
This commit is contained in:
parent
6c1906fd53
commit
5cb15874fa
@ -109,7 +109,6 @@ var PDFViewerApplication = {
|
||||
/** @type {PDFHistory} */
|
||||
pdfHistory: null,
|
||||
pageRotation: 0,
|
||||
updateScaleControls: true,
|
||||
isInitialViewSet: false,
|
||||
animationStartedPromise: null,
|
||||
preferenceSidebarViewOnLoad: SidebarView.NONE,
|
||||
@ -1175,9 +1174,7 @@ var PDFViewerApplication = {
|
||||
},
|
||||
|
||||
setScale: function (value, resetAutoSettings) {
|
||||
this.updateScaleControls = !!resetAutoSettings;
|
||||
this.pdfViewer.currentScaleValue = value;
|
||||
this.updateScaleControls = true;
|
||||
},
|
||||
|
||||
rotatePages: function pdfViewRotatePages(delta) {
|
||||
@ -1752,18 +1749,6 @@ window.addEventListener('scalechange', function scalechange(evt) {
|
||||
document.getElementById('zoomOut').disabled = (evt.scale === MIN_SCALE);
|
||||
document.getElementById('zoomIn').disabled = (evt.scale === MAX_SCALE);
|
||||
|
||||
var customScaleOption = document.getElementById('customScaleOption');
|
||||
customScaleOption.selected = false;
|
||||
|
||||
if (!PDFViewerApplication.updateScaleControls &&
|
||||
(document.getElementById('pageAutoOption').selected ||
|
||||
document.getElementById('pageActualOption').selected ||
|
||||
document.getElementById('pageFitOption').selected ||
|
||||
document.getElementById('pageWidthOption').selected)) {
|
||||
updateViewarea();
|
||||
return;
|
||||
}
|
||||
|
||||
if (evt.presetValue) {
|
||||
selectScaleOption(evt.presetValue);
|
||||
updateViewarea();
|
||||
@ -1772,6 +1757,7 @@ window.addEventListener('scalechange', function scalechange(evt) {
|
||||
|
||||
var predefinedValueFound = selectScaleOption('' + evt.scale);
|
||||
if (!predefinedValueFound) {
|
||||
var customScaleOption = document.getElementById('customScaleOption');
|
||||
var customScale = Math.round(evt.scale * 10000) / 100;
|
||||
customScaleOption.textContent =
|
||||
mozL10n.get('page_scale_percent', { scale: customScale }, '{{scale}}%');
|
||||
|
Loading…
x
Reference in New Issue
Block a user