Browse Source

Add various improvements to scroll Thumbnails into view - comments addressed

Snuffleupagus 12 years ago
parent
commit
ae29adc730
  1. 20
      web/viewer.js

20
web/viewer.js

@ -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…
Cancel
Save