Merge pull request #5586 from fkaelberer/updateThumbnailClassesOnlyWhenVisible
Update thumbnails only when they are visible (to improve scrolling through large documents)
This commit is contained in:
commit
ce122591b9
@ -76,7 +76,9 @@ var PDFThumbnailViewer = (function PDFThumbnailViewerClosure() {
|
|||||||
selected.classList.remove('selected');
|
selected.classList.remove('selected');
|
||||||
}
|
}
|
||||||
var thumbnail = document.getElementById('thumbnailContainer' + page);
|
var thumbnail = document.getElementById('thumbnailContainer' + page);
|
||||||
thumbnail.classList.add('selected');
|
if (thumbnail) {
|
||||||
|
thumbnail.classList.add('selected');
|
||||||
|
}
|
||||||
var visibleThumbs = this._getVisibleThumbs();
|
var visibleThumbs = this._getVisibleThumbs();
|
||||||
var numVisibleThumbs = visibleThumbs.views.length;
|
var numVisibleThumbs = visibleThumbs.views.length;
|
||||||
|
|
||||||
|
@ -1157,6 +1157,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) {
|
switchSidebarView: function pdfViewSwitchSidebarView(view, openSidebar) {
|
||||||
if (openSidebar && !this.sidebarOpen) {
|
if (openSidebar && !this.sidebarOpen) {
|
||||||
document.getElementById('sidebarToggle').click();
|
document.getElementById('sidebarToggle').click();
|
||||||
@ -1551,6 +1568,9 @@ function webViewerInitialized() {
|
|||||||
outerContainer.classList.toggle('sidebarOpen');
|
outerContainer.classList.toggle('sidebarOpen');
|
||||||
PDFViewerApplication.sidebarOpen =
|
PDFViewerApplication.sidebarOpen =
|
||||||
outerContainer.classList.contains('sidebarOpen');
|
outerContainer.classList.contains('sidebarOpen');
|
||||||
|
if (PDFViewerApplication.sidebarOpen) {
|
||||||
|
PDFViewerApplication.refreshThumbnailViewer();
|
||||||
|
}
|
||||||
PDFViewerApplication.forceRendering();
|
PDFViewerApplication.forceRendering();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1665,9 +1685,12 @@ document.addEventListener('pagerendered', function (e) {
|
|||||||
var pageNumber = e.detail.pageNumber;
|
var pageNumber = e.detail.pageNumber;
|
||||||
var pageIndex = pageNumber - 1;
|
var pageIndex = pageNumber - 1;
|
||||||
var pageView = PDFViewerApplication.pdfViewer.getPageView(pageIndex);
|
var pageView = PDFViewerApplication.pdfViewer.getPageView(pageIndex);
|
||||||
var thumbnailView = PDFViewerApplication.pdfThumbnailViewer.
|
|
||||||
getThumbnail(pageIndex);
|
if (PDFViewerApplication.sidebarOpen) {
|
||||||
thumbnailView.setImage(pageView);
|
var thumbnailView = PDFViewerApplication.pdfThumbnailViewer.
|
||||||
|
getThumbnail(pageIndex);
|
||||||
|
thumbnailView.setImage(pageView);
|
||||||
|
}
|
||||||
|
|
||||||
if (PDFJS.pdfBug && Stats.enabled && pageView.stats) {
|
if (PDFJS.pdfBug && Stats.enabled && pageView.stats) {
|
||||||
Stats.add(pageNumber, pageView.stats);
|
Stats.add(pageNumber, pageView.stats);
|
||||||
@ -1897,7 +1920,9 @@ window.addEventListener('pagechange', function pagechange(evt) {
|
|||||||
var page = evt.pageNumber;
|
var page = evt.pageNumber;
|
||||||
if (evt.previousPageNumber !== page) {
|
if (evt.previousPageNumber !== page) {
|
||||||
document.getElementById('pageNumber').value = page;
|
document.getElementById('pageNumber').value = page;
|
||||||
PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(page);
|
if (PDFViewerApplication.sidebarOpen) {
|
||||||
|
PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(page);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
var numPages = PDFViewerApplication.pagesCount;
|
var numPages = PDFViewerApplication.pagesCount;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user