diff --git a/web/pdf_thumbnail_viewer.js b/web/pdf_thumbnail_viewer.js index 170fa19acd4a1..5c407ada1ffe1 100644 --- a/web/pdf_thumbnail_viewer.js +++ b/web/pdf_thumbnail_viewer.js @@ -76,7 +76,9 @@ var PDFThumbnailViewer = (function PDFThumbnailViewerClosure() { selected.classList.remove('selected'); } var thumbnail = document.getElementById('thumbnailContainer' + page); - thumbnail.classList.add('selected'); + if (thumbnail) { + thumbnail.classList.add('selected'); + } var visibleThumbs = this._getVisibleThumbs(); var numVisibleThumbs = visibleThumbs.views.length; diff --git a/web/viewer.js b/web/viewer.js index d47962d01d72b..022d573b21d22 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -1177,6 +1177,23 @@ var PDFViewerApplication = { } }, + refreshThumbnailViewer: function pdfViewRefreshThumbnailViewer() { + var pdfViewer = this.pdfViewer; + var thumbnailViewer = this.pdfThumbnailViewer; + + // set thumbnail images of rendered pages + var pagesCount = pdfViewer.pagesCount; + for (var pageIndex = 0; pageIndex < pagesCount; pageIndex++) { + var pageView = pdfViewer.getPageView(pageIndex); + if (pageView && pageView.renderingState === RenderingStates.FINISHED) { + var thumbnailView = thumbnailViewer.getThumbnail(pageIndex); + thumbnailView.setImage(pageView); + } + } + + thumbnailViewer.scrollThumbnailIntoView(this.page); + }, + switchSidebarView: function pdfViewSwitchSidebarView(view, openSidebar) { if (openSidebar && !this.sidebarOpen) { document.getElementById('sidebarToggle').click(); @@ -1574,6 +1591,9 @@ function webViewerInitialized() { outerContainer.classList.toggle('sidebarOpen'); PDFViewerApplication.sidebarOpen = outerContainer.classList.contains('sidebarOpen'); + if (PDFViewerApplication.sidebarOpen) { + PDFViewerApplication.refreshThumbnailViewer(); + } PDFViewerApplication.forceRendering(); }); @@ -1688,9 +1708,12 @@ document.addEventListener('pagerendered', function (e) { var pageNumber = e.detail.pageNumber; var pageIndex = pageNumber - 1; var pageView = PDFViewerApplication.pdfViewer.getPageView(pageIndex); - var thumbnailView = PDFViewerApplication.pdfThumbnailViewer. - getThumbnail(pageIndex); - thumbnailView.setImage(pageView); + + if (PDFViewerApplication.sidebarOpen) { + var thumbnailView = PDFViewerApplication.pdfThumbnailViewer. + getThumbnail(pageIndex); + thumbnailView.setImage(pageView); + } if (PDFJS.pdfBug && Stats.enabled && pageView.stats) { Stats.add(pageNumber, pageView.stats); @@ -1920,7 +1943,9 @@ window.addEventListener('pagechange', function pagechange(evt) { var page = evt.pageNumber; if (evt.previousPageNumber !== page) { document.getElementById('pageNumber').value = page; - PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(page); + if (PDFViewerApplication.sidebarOpen) { + PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(page); + } } var numPages = PDFViewerApplication.pagesCount;