Skip to content

Commit

Permalink
Merge pull request #19475 from Snuffleupagus/injectLinkAnnotations-me…
Browse files Browse the repository at this point in the history
…thod-event

Move the auto-link handling into its own `PDFPageView` helper-method, and dispatch a "linkannotationsadded" event
  • Loading branch information
Snuffleupagus authored Feb 14, 2025
2 parents a877493 + 8727a04 commit c81a404
Showing 1 changed file with 24 additions and 12 deletions.
36 changes: 24 additions & 12 deletions web/pdf_page_view.js
Original file line number Diff line number Diff line change
Expand Up @@ -536,6 +536,28 @@ class PDFPageView {
this._textHighlighter.enable();
}

async #injectLinkAnnotations(textLayerPromise) {
let error = null;
try {
await textLayerPromise;

if (!this.annotationLayer) {
return; // Rendering was cancelled while the textLayerPromise resolved.
}
await this.annotationLayer.injectLinkAnnotations({
inferredLinks: Autolinker.processLinks(this),
viewport: this.viewport,
structTreeLayer: this.structTreeLayer,
});
} catch (ex) {
console.error("#injectLinkAnnotations:", ex);
error = ex;
}
if (typeof PDFJSDev === "undefined" || PDFJSDev.test("TESTING")) {
this.#dispatchLayerRendered("linkannotationsadded", error);
}
}

#resetCanvas() {
const { canvas } = this;
if (!canvas) {
Expand Down Expand Up @@ -1122,18 +1144,8 @@ class PDFPageView {
if (this.annotationLayer) {
await this.#renderAnnotationLayer();

if (this.#enableAutoLinking) {
try {
await textLayerPromise;

this.annotationLayer?.injectLinkAnnotations({
inferredLinks: Autolinker.processLinks(this),
viewport: this.viewport,
structTreeLayer: this.structTreeLayer,
});
} catch (ex) {
console.error("enableAutoLinking:", ex);
}
if (this.#enableAutoLinking && this.annotationLayer) {
await this.#injectLinkAnnotations(textLayerPromise);
}
}

Expand Down

0 comments on commit c81a404

Please sign in to comment.