mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-19 14:48:08 +02:00
Merge pull request #19204 from calixteman/set_canvas_as_first_child
Make sure the canvas is always the first child of its wrapper
This commit is contained in:
commit
f9ae9b06e8
1 changed files with 17 additions and 5 deletions
|
@ -975,6 +975,10 @@ class PDFPageView {
|
|||
|
||||
const hasHCM = !!(pageColors?.background && pageColors?.foreground);
|
||||
const prevCanvas = this.canvas;
|
||||
|
||||
// In HCM, a final filter is applied on the canvas which means that
|
||||
// before it's applied we've normal colors. Consequently, to avoid to
|
||||
// have a final flash we just display it once all the drawing is done.
|
||||
const updateOnFirstShow = !prevCanvas && !hasHCM;
|
||||
this.canvas = canvas;
|
||||
this.#originalViewport = viewport;
|
||||
|
@ -984,7 +988,13 @@ class PDFPageView {
|
|||
// Don't add the canvas until the first draw callback, or until
|
||||
// drawing is complete when `!this.renderingQueue`, to prevent black
|
||||
// flickering.
|
||||
canvasWrapper.append(canvas);
|
||||
// In whatever case, the canvas must be the first child.
|
||||
const { firstChild } = canvasWrapper;
|
||||
if (firstChild) {
|
||||
firstChild.before(canvas);
|
||||
} else {
|
||||
canvasWrapper.append(canvas);
|
||||
}
|
||||
showCanvas = null;
|
||||
return;
|
||||
}
|
||||
|
@ -996,10 +1006,12 @@ class PDFPageView {
|
|||
prevCanvas.replaceWith(canvas);
|
||||
prevCanvas.width = prevCanvas.height = 0;
|
||||
} else {
|
||||
// In HCM, a final filter is applied on the canvas which means that
|
||||
// before it's applied we've normal colors. Consequently, to avoid to
|
||||
// have a final flash we just display it once all the drawing is done.
|
||||
canvasWrapper.append(canvas);
|
||||
const { firstChild } = canvasWrapper;
|
||||
if (firstChild) {
|
||||
firstChild.before(canvas);
|
||||
} else {
|
||||
canvasWrapper.append(canvas);
|
||||
}
|
||||
}
|
||||
|
||||
showCanvas = null;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue