Merge pull request #10138 from Snuffleupagus/toolbar-pageScaleValue

Ensure that `Toolbar.setPageScale` always sets the `pageScaleValue` property to a valid value
This commit is contained in:
Tim van der Meij 2018-10-05 22:41:59 +02:00 committed by GitHub
commit d4469da22b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -78,7 +78,7 @@ class Toolbar {
} }
setPageScale(pageScaleValue, pageScale) { setPageScale(pageScaleValue, pageScale) {
this.pageScaleValue = pageScaleValue; this.pageScaleValue = (pageScaleValue || pageScale).toString();
this.pageScale = pageScale; this.pageScale = pageScale;
this._updateUIState(false); this._updateUIState(false);
} }
@ -169,9 +169,7 @@ class Toolbar {
// Don't update the UI state until we localize the toolbar. // Don't update the UI state until we localize the toolbar.
return; return;
} }
let { pageNumber, pagesCount, items, } = this; const { pageNumber, pagesCount, pageScaleValue, pageScale, items, } = this;
let scaleValue = (this.pageScaleValue || this.pageScale).toString();
let scale = this.pageScale;
if (resetNumPages) { if (resetNumPages) {
if (this.hasPageLabels) { if (this.hasPageLabels) {
@ -199,17 +197,17 @@ class Toolbar {
items.previous.disabled = (pageNumber <= 1); items.previous.disabled = (pageNumber <= 1);
items.next.disabled = (pageNumber >= pagesCount); items.next.disabled = (pageNumber >= pagesCount);
items.zoomOut.disabled = (scale <= MIN_SCALE); items.zoomOut.disabled = (pageScale <= MIN_SCALE);
items.zoomIn.disabled = (scale >= MAX_SCALE); items.zoomIn.disabled = (pageScale >= MAX_SCALE);
let customScale = Math.round(scale * 10000) / 100; let customScale = Math.round(pageScale * 10000) / 100;
this.l10n.get('page_scale_percent', { scale: customScale, }, this.l10n.get('page_scale_percent', { scale: customScale, },
'{{scale}}%').then((msg) => { '{{scale}}%').then((msg) => {
let options = items.scaleSelect.options; let options = items.scaleSelect.options;
let predefinedValueFound = false; let predefinedValueFound = false;
for (let i = 0, ii = options.length; i < ii; i++) { for (let i = 0, ii = options.length; i < ii; i++) {
let option = options[i]; let option = options[i];
if (option.value !== scaleValue) { if (option.value !== pageScaleValue) {
option.selected = false; option.selected = false;
continue; continue;
} }