From ff26d419dda98ccc8449c0269573d287c94dbeee Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Sat, 30 Jun 2018 14:54:33 +0200 Subject: [PATCH] Ensure that Scroll/Spread mode buttons are correctly reset, when the document is closed Since the Scroll/Spread modes are now document specific, as all other properties such as page/scale/rotation, ensure that the toolbar is always correctly reset. --- web/secondary_toolbar.js | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/web/secondary_toolbar.js b/web/secondary_toolbar.js index 233f5f6fa..ac46becde 100644 --- a/web/secondary_toolbar.js +++ b/web/secondary_toolbar.js @@ -140,6 +140,10 @@ class SecondaryToolbar { this.pageNumber = 0; this.pagesCount = 0; this._updateUIState(); + + // Reset the Scroll/Spread buttons too, since they're document specific. + this.eventBus.dispatch('resetscrollmode', { source: this, }); + this.eventBus.dispatch('resetspreadmode', { source: this, }); } _updateUIState() { @@ -189,7 +193,7 @@ class SecondaryToolbar { } _bindScrollModeListener(buttons) { - this.eventBus.on('scrollmodechanged', function(evt) { + function scrollModeChanged(evt) { buttons.scrollVerticalButton.classList.remove('toggled'); buttons.scrollHorizontalButton.classList.remove('toggled'); buttons.scrollWrappedButton.classList.remove('toggled'); @@ -205,11 +209,18 @@ class SecondaryToolbar { buttons.scrollWrappedButton.classList.add('toggled'); break; } + } + this.eventBus.on('scrollmodechanged', scrollModeChanged); + + this.eventBus.on('resetscrollmode', (evt) => { + if (evt.source === this) { + scrollModeChanged({ mode: ScrollMode.VERTICAL, }); + } }); } _bindSpreadModeListener(buttons) { - this.eventBus.on('spreadmodechanged', function(evt) { + function spreadModeChanged(evt) { buttons.spreadNoneButton.classList.remove('toggled'); buttons.spreadOddButton.classList.remove('toggled'); buttons.spreadEvenButton.classList.remove('toggled'); @@ -225,6 +236,13 @@ class SecondaryToolbar { buttons.spreadEvenButton.classList.add('toggled'); break; } + } + this.eventBus.on('spreadmodechanged', spreadModeChanged); + + this.eventBus.on('resetspreadmode', (evt) => { + if (evt.source === this) { + spreadModeChanged({ mode: SpreadMode.NONE, }); + } }); }