diff --git a/web/app.js b/web/app.js index 66bacb9a5..7d40346dd 100644 --- a/web/app.js +++ b/web/app.js @@ -985,6 +985,12 @@ let PDFViewerApplication = { pdfViewer.currentScaleValue = pdfViewer.currentScaleValue; this.setInitialView(initialParams.hash); + }).then(function() { + // At this point, rendering of the initial page(s) should always have + // started (and may even have completed). + // To prevent any future issues, e.g. the document being completely + // blank on load, always trigger rendering here. + pdfViewer.update(); }); }); @@ -1793,19 +1799,18 @@ function webViewerUpdateViewarea(evt) { } function webViewerResize() { - let currentScaleValue = PDFViewerApplication.pdfViewer.currentScaleValue; + let { pdfDocument, pdfViewer, } = PDFViewerApplication; + if (!pdfDocument) { + return; + } + let currentScaleValue = pdfViewer.currentScaleValue; if (currentScaleValue === 'auto' || currentScaleValue === 'page-fit' || currentScaleValue === 'page-width') { // Note: the scale is constant for 'page-actual'. - PDFViewerApplication.pdfViewer.currentScaleValue = currentScaleValue; - } else if (!currentScaleValue) { - // Normally this shouldn't happen, but if the scale wasn't initialized - // we set it to the default value in order to prevent any issues. - // (E.g. the document being rendered with the wrong scale on load.) - PDFViewerApplication.pdfViewer.currentScaleValue = DEFAULT_SCALE_VALUE; + pdfViewer.currentScaleValue = currentScaleValue; } - PDFViewerApplication.pdfViewer.update(); + pdfViewer.update(); } function webViewerHashchange(evt) {