From 0fc8986dc662dc223c6f22ece6961a194ccfbdeb Mon Sep 17 00:00:00 2001 From: Calixte Denizet Date: Wed, 10 Sep 2025 10:23:20 +0200 Subject: [PATCH] [Editor] Cleanup the pages not being fully rendered before switching to editing mode In order to see the issue this patch is fixing: - open a pdf with some highlights and a comment on page 1, at page 7 - open the comment sidebar - click on the comment on page 1 Opening at page 7 lets a not fully rendered page which means that when jumping to it with the sidebar, we re-use what we've instead of redrawing it. --- web/pdf_page_view.js | 4 ++++ web/pdf_viewer.js | 2 ++ 2 files changed, 6 insertions(+) diff --git a/web/pdf_page_view.js b/web/pdf_page_view.js index 8a983c0ef..403976a15 100644 --- a/web/pdf_page_view.js +++ b/web/pdf_page_view.js @@ -1074,6 +1074,10 @@ class PDFPageView extends BasePDFPageView { ); } ).then(async () => { + if (this.renderingState !== RenderingStates.FINISHED) { + // The rendering has been cancelled. + return; + } this.structTreeLayer ||= new StructTreeLayerBuilder( pdfPage, viewport.rawDims diff --git a/web/pdf_viewer.js b/web/pdf_viewer.js index 424180447..70c4d7a58 100644 --- a/web/pdf_viewer.js +++ b/web/pdf_viewer.js @@ -2502,6 +2502,8 @@ class PDFViewer { if (!isEditing) { this.pdfDocument.annotationStorage.resetModifiedIds(); } + // We need to cleanup whatever pages being rendered. + this.cleanup(); for (const pageView of this._pages) { pageView.toggleEditingMode(isEditing); }