From a4d4364f5dac062b76770bacc4e415aa5c45d527 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald <jonas.jenwald@gmail.com> Date: Fri, 5 Oct 2018 12:13:48 +0200 Subject: [PATCH] Ensure that `Toolbar.setPageScale` always sets the `pageScaleValue` property to a valid value Rather than having every invocation of `Toolbar._updateUIState` compute a valid `pageScaleValue`, it seems easier to simply ensure that it happens when the value is actually updated. --- web/toolbar.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/web/toolbar.js b/web/toolbar.js index 986f638f4..923f62ebf 100644 --- a/web/toolbar.js +++ b/web/toolbar.js @@ -80,7 +80,7 @@ class Toolbar { } setPageScale(pageScaleValue, pageScale) { - this.pageScaleValue = pageScaleValue; + this.pageScaleValue = (pageScaleValue || pageScale).toString(); this.pageScale = pageScale; this._updateUIState(false); } @@ -171,9 +171,7 @@ class Toolbar { // Don't update the UI state until we localize the toolbar. return; } - let { pageNumber, pagesCount, items, } = this; - let scaleValue = (this.pageScaleValue || this.pageScale).toString(); - let scale = this.pageScale; + const { pageNumber, pagesCount, pageScaleValue, pageScale, items, } = this; if (resetNumPages) { if (this.hasPageLabels) { @@ -201,17 +199,17 @@ class Toolbar { items.previous.disabled = (pageNumber <= 1); items.next.disabled = (pageNumber >= pagesCount); - items.zoomOut.disabled = (scale <= MIN_SCALE); - items.zoomIn.disabled = (scale >= MAX_SCALE); + items.zoomOut.disabled = (pageScale <= MIN_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, }, '{{scale}}%').then((msg) => { let options = items.scaleSelect.options; let predefinedValueFound = false; for (let i = 0, ii = options.length; i < ii; i++) { let option = options[i]; - if (option.value !== scaleValue) { + if (option.value !== pageScaleValue) { option.selected = false; continue; }