Don't use partially rendered pages to generate thumbnails when drawingDelay
is used (PR 15812 follow-up)
While it's slightly difficult to trigger in practice, unless the `defaultZoomDelay`-value is increased, it's currently possible to generate thumbnails from *partially* rendered pages when doing *temporary* CSS-only zooming.
This commit is contained in:
parent
af8df207bb
commit
a60bb5f936
@ -125,6 +125,7 @@ class PDFPageView {
|
|||||||
#textLayerMode = TextLayerMode.ENABLE;
|
#textLayerMode = TextLayerMode.ENABLE;
|
||||||
|
|
||||||
#useThumbnailCanvas = {
|
#useThumbnailCanvas = {
|
||||||
|
directDrawing: true,
|
||||||
initialOptionalContent: true,
|
initialOptionalContent: true,
|
||||||
regularAnnotations: true,
|
regularAnnotations: true,
|
||||||
};
|
};
|
||||||
@ -552,6 +553,7 @@ class PDFPageView {
|
|||||||
optionalContentConfig.hasInitialVisibility;
|
optionalContentConfig.hasInitialVisibility;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
this.#useThumbnailCanvas.directDrawing = true;
|
||||||
|
|
||||||
const totalRotation = (this.rotation + this.pdfPageRotate) % 360;
|
const totalRotation = (this.rotation + this.pdfPageRotate) % 360;
|
||||||
this.viewport = this.viewport.clone({
|
this.viewport = this.viewport.clone({
|
||||||
@ -605,6 +607,9 @@ class PDFPageView {
|
|||||||
// the rendering state to INITIAL, hence the next call to
|
// the rendering state to INITIAL, hence the next call to
|
||||||
// PDFViewer.update() will trigger a redraw (if it's mandatory).
|
// PDFViewer.update() will trigger a redraw (if it's mandatory).
|
||||||
this.renderingState = RenderingStates.FINISHED;
|
this.renderingState = RenderingStates.FINISHED;
|
||||||
|
// Ensure that the thumbnails won't become partially (or fully) blank,
|
||||||
|
// if the sidebar is opened before the actual rendering is done.
|
||||||
|
this.#useThumbnailCanvas.directDrawing = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.cssTransform({
|
this.cssTransform({
|
||||||
@ -1033,9 +1038,11 @@ class PDFPageView {
|
|||||||
* @ignore
|
* @ignore
|
||||||
*/
|
*/
|
||||||
get thumbnailCanvas() {
|
get thumbnailCanvas() {
|
||||||
const { initialOptionalContent, regularAnnotations } =
|
const { directDrawing, initialOptionalContent, regularAnnotations } =
|
||||||
this.#useThumbnailCanvas;
|
this.#useThumbnailCanvas;
|
||||||
return initialOptionalContent && regularAnnotations ? this.canvas : null;
|
return directDrawing && initialOptionalContent && regularAnnotations
|
||||||
|
? this.canvas
|
||||||
|
: null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user