Browse Source

Merge pull request #7502 from Snuffleupagus/pagechanging-outOfBounds

Remove the `previousPageNumber` parameter from the `pagechanging`/pagechange` events, and stop dispatching the events if the input is out of bounds
Tim van der Meij 9 years ago committed by GitHub
parent
commit
0925503ce7
  1. 11
      web/app.js
  2. 1
      web/dom_events.js
  3. 17
      web/pdf_viewer.js

11
web/app.js

@ -1526,11 +1526,12 @@ function webViewerInitialized() {
}); });
appConfig.toolbar.pageNumber.addEventListener('change', function() { appConfig.toolbar.pageNumber.addEventListener('change', function() {
// Handle the user inputting a floating point number.
PDFViewerApplication.page = (this.value | 0); PDFViewerApplication.page = (this.value | 0);
if (this.value !== (this.value | 0).toString()) { // Ensure that the page number input displays the correct value, even if the
this.value = PDFViewerApplication.page; // value entered by the user was invalid (e.g. a floating point number).
if (this.value !== PDFViewerApplication.page.toString()) {
PDFViewerApplication._updateUIToolbar({});
} }
}); });
@ -1971,8 +1972,8 @@ function webViewerPageChanging(e) {
PDFViewerApplication._updateUIToolbar({ PDFViewerApplication._updateUIToolbar({
pageNumber: page, pageNumber: page,
}); });
if (e.previousPageNumber !== page &&
PDFViewerApplication.pdfSidebar.isThumbnailViewVisible) { if (PDFViewerApplication.pdfSidebar.isThumbnailViewVisible) {
PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(page); PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(page);
} }

1
web/dom_events.js

@ -53,7 +53,6 @@
var event = document.createEvent('UIEvents'); var event = document.createEvent('UIEvents');
event.initUIEvent('pagechange', true, true, window, 0); event.initUIEvent('pagechange', true, true, window, 0);
event.pageNumber = e.pageNumber; event.pageNumber = e.pageNumber;
event.previousPageNumber = e.previousPageNumber;
e.source.container.dispatchEvent(event); e.source.container.dispatchEvent(event);
}); });
eventBus.on('pagesinit', function (e) { eventBus.on('pagesinit', function (e) {

17
web/pdf_viewer.js

@ -166,6 +166,9 @@ var PDFViewer = (function pdfViewer() {
* @param {number} val - The page number. * @param {number} val - The page number.
*/ */
set currentPageNumber(val) { set currentPageNumber(val) {
if ((val | 0) !== val) { // Ensure that `val` is an integer.
throw new Error('Invalid page number.');
}
if (!this.pdfDocument) { if (!this.pdfDocument) {
this._currentPageNumber = val; this._currentPageNumber = val;
return; return;
@ -185,22 +188,14 @@ var PDFViewer = (function pdfViewer() {
} }
return; return;
} }
var arg;
if (!(0 < val && val <= this.pagesCount)) { if (!(0 < val && val <= this.pagesCount)) {
arg = {
source: this,
pageNumber: this._currentPageNumber,
previousPageNumber: val
};
this.eventBus.dispatch('pagechanging', arg);
this.eventBus.dispatch('pagechange', arg);
return; return;
} }
arg = { var arg = {
source: this, source: this,
pageNumber: val, pageNumber: val,
previousPageNumber: this._currentPageNumber
}; };
this._currentPageNumber = val; this._currentPageNumber = val;
this.eventBus.dispatch('pagechanging', arg); this.eventBus.dispatch('pagechanging', arg);
@ -223,7 +218,7 @@ var PDFViewer = (function pdfViewer() {
* @param {number} val - Scale of the pages in percents. * @param {number} val - Scale of the pages in percents.
*/ */
set currentScale(val) { set currentScale(val) {
if (isNaN(val)) { if (isNaN(val)) {
throw new Error('Invalid numeric scale'); throw new Error('Invalid numeric scale');
} }
if (!this.pdfDocument) { if (!this.pdfDocument) {

Loading…
Cancel
Save