diff --git a/web/base_viewer.js b/web/base_viewer.js index fbacf361c..fdfb7857e 100644 --- a/web/base_viewer.js +++ b/web/base_viewer.js @@ -1361,10 +1361,12 @@ class BaseViewer { return promise; } - /** - * @private - */ - get _scrollAhead() { + #getScrollAhead(views) { + if (views.first.id === 1) { + return true; + } else if (views.last.id === this.pagesCount) { + return false; + } switch (this._scrollMode) { case ScrollMode.PAGE: return this._scrollModePageState.scrollDown; @@ -1376,7 +1378,7 @@ class BaseViewer { forceRendering(currentlyVisiblePages) { const visiblePages = currentlyVisiblePages || this._getVisiblePages(); - const scrollAhead = this._scrollAhead; + const scrollAhead = this.#getScrollAhead(visiblePages); const preRenderExtra = this._spreadMode !== SpreadMode.NONE && this._scrollMode !== ScrollMode.HORIZONTAL; diff --git a/web/pdf_thumbnail_viewer.js b/web/pdf_thumbnail_viewer.js index 36d2e6bd6..350b1a820 100644 --- a/web/pdf_thumbnail_viewer.js +++ b/web/pdf_thumbnail_viewer.js @@ -295,12 +295,22 @@ class PDFThumbnailViewer { return promise; } + #getScrollAhead(views) { + if (views.first.id === 1) { + return true; + } else if (views.last.id === this._thumbnails.length) { + return false; + } + return this.scroll.down; + } + forceRendering() { const visibleThumbs = this._getVisibleThumbs(); + const scrollAhead = this.#getScrollAhead(visibleThumbs); const thumbView = this.renderingQueue.getHighestPriority( visibleThumbs, this._thumbnails, - this.scroll.down + scrollAhead ); if (thumbView) { this._ensurePdfPageLoaded(thumbView).then(() => {