Tweak the behaviour of navigateTo during document load

This commit is contained in:
Jonas 2013-06-05 22:15:39 +02:00
parent b996e1b781
commit d3c82750c4

View File

@ -1486,19 +1486,12 @@ var PDFView = {
},
navigateTo: function pdfViewNavigateTo(dest) {
var destString = '';
var self = this;
PDFJS.Promise.all([this.pagesPromise,
this.destinationsPromise]).then(function() {
var destString = '';
if (typeof dest === 'string') {
destString = dest;
dest = self.destinations[dest];
}
if (!(dest instanceof Array)) {
return; // invalid destination
}
var goToDestination = function(destRef) {
self.pendingRefStr = null;
// dest array looks like that: <page-ref> </XYZ|FitXXX> <args..>
var destRef = dest[0];
var pageNumber = destRef instanceof Object ?
self.pagesRefMap[destRef.num + ' ' + destRef.gen + ' R'] :
(destRef + 1);
@ -1511,7 +1504,24 @@ var PDFView = {
// Update the browsing history.
PDFHistory.push({ dest: dest, hash: destString, page: pageNumber });
} else {
self.pendingRefStrLoaded = new PDFJS.Promise();
self.pendingRefStr = destRef.num + ' ' + destRef.gen + ' R';
self.pendingRefStrLoaded.then(function() {
goToDestination(destRef);
});
}
};
this.destinationsPromise.then(function() {
if (typeof dest === 'string') {
destString = dest;
dest = self.destinations[dest];
}
if (!(dest instanceof Array)) {
return; // invalid destination
}
goToDestination(dest[0]);
});
},
@ -1746,6 +1756,10 @@ var PDFView = {
var pageRef = pdfPage.ref;
var refStr = pageRef.num + ' ' + pageRef.gen + ' R';
pagesRefMap[refStr] = pdfPage.pageNumber;
if (self.pendingRefStr && self.pendingRefStr === refStr) {
self.pendingRefStrLoaded.resolve();
}
});
pagePromises.push(pagePromise);
}