Merge pull request #2509 from Snuffleupagus/tweak-thumbnail-scrolling
Add various improvements to scroll Thumbnails into view
This commit is contained in:
commit
71b1022fb0
@ -694,6 +694,7 @@ var PDFView = {
|
|||||||
mouseScrollTimeStamp: 0,
|
mouseScrollTimeStamp: 0,
|
||||||
mouseScrollDelta: 0,
|
mouseScrollDelta: 0,
|
||||||
lastScroll: 0,
|
lastScroll: 0,
|
||||||
|
previousPageNumber: 1,
|
||||||
|
|
||||||
// called once when the document is loaded
|
// called once when the document is loaded
|
||||||
initialize: function pdfViewInitialize() {
|
initialize: function pdfViewInitialize() {
|
||||||
@ -816,12 +817,14 @@ var PDFView = {
|
|||||||
event.initUIEvent('pagechange', false, false, window, 0);
|
event.initUIEvent('pagechange', false, false, window, 0);
|
||||||
|
|
||||||
if (!(0 < val && val <= pages.length)) {
|
if (!(0 < val && val <= pages.length)) {
|
||||||
|
this.previousPageNumber = val;
|
||||||
event.pageNumber = this.page;
|
event.pageNumber = this.page;
|
||||||
window.dispatchEvent(event);
|
window.dispatchEvent(event);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pages[val - 1].updateStats();
|
pages[val - 1].updateStats();
|
||||||
|
this.previousPageNumber = currentPageNumber;
|
||||||
currentPageNumber = val;
|
currentPageNumber = val;
|
||||||
event.pageNumber = val;
|
event.pageNumber = val;
|
||||||
window.dispatchEvent(event);
|
window.dispatchEvent(event);
|
||||||
@ -1479,12 +1482,21 @@ var PDFView = {
|
|||||||
|
|
||||||
switch (view) {
|
switch (view) {
|
||||||
case 'thumbs':
|
case 'thumbs':
|
||||||
|
var wasOutlineViewVisible = thumbsView.classList.contains('hidden');
|
||||||
|
|
||||||
thumbsButton.classList.add('toggled');
|
thumbsButton.classList.add('toggled');
|
||||||
outlineButton.classList.remove('toggled');
|
outlineButton.classList.remove('toggled');
|
||||||
thumbsView.classList.remove('hidden');
|
thumbsView.classList.remove('hidden');
|
||||||
outlineView.classList.add('hidden');
|
outlineView.classList.add('hidden');
|
||||||
|
|
||||||
PDFView.renderHighestPriority();
|
PDFView.renderHighestPriority();
|
||||||
|
|
||||||
|
if (wasOutlineViewVisible) {
|
||||||
|
// Ensure that the thumbnail of the current page is visible
|
||||||
|
// when switching from the outline view.
|
||||||
|
scrollIntoView(document.getElementById('thumbnailContainer' +
|
||||||
|
this.page));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'outline':
|
case 'outline':
|
||||||
@ -2215,6 +2227,12 @@ var ThumbnailView = function thumbnailView(container, pdfPage, id) {
|
|||||||
div.id = 'thumbnailContainer' + id;
|
div.id = 'thumbnailContainer' + id;
|
||||||
div.className = 'thumbnail';
|
div.className = 'thumbnail';
|
||||||
|
|
||||||
|
if (id === 1) {
|
||||||
|
// Highlight the thumbnail of the first page when no page number is
|
||||||
|
// specified (or exists in cache) when the document is loaded.
|
||||||
|
div.classList.add('selected');
|
||||||
|
}
|
||||||
|
|
||||||
var ring = document.createElement('div');
|
var ring = document.createElement('div');
|
||||||
ring.className = 'thumbnailSelectionRing';
|
ring.className = 'thumbnailSelectionRing';
|
||||||
ring.style.width = canvasWidth + 'px';
|
ring.style.width = canvasWidth + 'px';
|
||||||
@ -3077,7 +3095,7 @@ window.addEventListener('scalechange', function scalechange(evt) {
|
|||||||
|
|
||||||
window.addEventListener('pagechange', function pagechange(evt) {
|
window.addEventListener('pagechange', function pagechange(evt) {
|
||||||
var page = evt.pageNumber;
|
var page = evt.pageNumber;
|
||||||
if (document.getElementById('pageNumber').value != page) {
|
if (PDFView.previousPageNumber !== page) {
|
||||||
document.getElementById('pageNumber').value = page;
|
document.getElementById('pageNumber').value = page;
|
||||||
var selected = document.querySelector('.thumbnail.selected');
|
var selected = document.querySelector('.thumbnail.selected');
|
||||||
if (selected)
|
if (selected)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user