diff --git a/web/pdf_viewer.js b/web/pdf_viewer.js index 7fa5f654d..0207c6f78 100644 --- a/web/pdf_viewer.js +++ b/web/pdf_viewer.js @@ -155,22 +155,34 @@ var PDFViewer = (function pdfViewer() { return this._pages[index]; }, + /** + * @returns {number} + */ get currentPageNumber() { return this._currentPageNumber; }, + /** + * @param {number} val - The page number. + */ set currentPageNumber(val) { if (!this.pdfDocument) { this._currentPageNumber = val; return; } - this._setCurrentPageNumber(val); // The intent can be to just reset a scroll position and/or scale. - this._resetCurrentPageView(); + this._setCurrentPageNumber(val, /* resetCurrentPageView = */ true); }, - _setCurrentPageNumber: function pdfViewer_setCurrentPageNumber(val) { + /** + * @private + */ + _setCurrentPageNumber: + function pdfViewer_setCurrentPageNumber(val, resetCurrentPageView) { if (this._currentPageNumber === val) { + if (resetCurrentPageView) { + this._resetCurrentPageView(); + } return; } var arg; @@ -193,6 +205,10 @@ var PDFViewer = (function pdfViewer() { this._currentPageNumber = val; this.eventBus.dispatch('pagechanging', arg); this.eventBus.dispatch('pagechange', arg); + + if (resetCurrentPageView) { + this._resetCurrentPageView(); + } }, /** @@ -500,6 +516,7 @@ var PDFViewer = (function pdfViewer() { /** * Refreshes page view: scrolls to the current page and updates the scale. + * @private */ _resetCurrentPageView: function () { if (this.isInPresentationMode) { @@ -524,8 +541,7 @@ var PDFViewer = (function pdfViewer() { } if (this.isInPresentationMode || !dest) { - this._setCurrentPageNumber(pageNumber); - this._resetCurrentPageView(); + this._setCurrentPageNumber(pageNumber, /* resetCurrentPageView */ true); return; }