From 047d61ed1fbf7744eae3b2113228dfa2ca90283c Mon Sep 17 00:00:00 2001 From: fkaelberer Date: Tue, 27 Jan 2015 21:08:36 +0100 Subject: [PATCH 1/2] Update thumbnail style only when sidebar is visible --- web/pdf_thumbnail_viewer.js | 4 +++- web/viewer.js | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) 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..5b954cfdacc95 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -1574,6 +1574,10 @@ function webViewerInitialized() { outerContainer.classList.toggle('sidebarOpen'); PDFViewerApplication.sidebarOpen = outerContainer.classList.contains('sidebarOpen'); + if (PDFViewerApplication.sidebarOpen) { + PDFViewerApplication.pdfThumbnailViewer. + scrollThumbnailIntoView(PDFViewerApplication.page); + } PDFViewerApplication.forceRendering(); }); @@ -1920,7 +1924,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; From d3022e1e70f82300529e5fd0a4e8459dcf953bb4 Mon Sep 17 00:00:00 2001 From: fkaelberer Date: Tue, 27 Jan 2015 21:13:34 +0100 Subject: [PATCH 2/2] Update thumbnail images only when sidebar is visible --- web/viewer.js | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/web/viewer.js b/web/viewer.js index 5b954cfdacc95..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(); @@ -1575,8 +1592,7 @@ function webViewerInitialized() { PDFViewerApplication.sidebarOpen = outerContainer.classList.contains('sidebarOpen'); if (PDFViewerApplication.sidebarOpen) { - PDFViewerApplication.pdfThumbnailViewer. - scrollThumbnailIntoView(PDFViewerApplication.page); + PDFViewerApplication.refreshThumbnailViewer(); } PDFViewerApplication.forceRendering(); }); @@ -1692,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);