Prevent mouse interaction with form elements in PresentationMode (issue 12232)
This commit is contained in:
parent
c059c13785
commit
f0811a4a3c
@ -645,6 +645,10 @@ class LinkAnnotationElement extends AnnotationElement {
|
||||
return this.container;
|
||||
}
|
||||
|
||||
#setInternalLink() {
|
||||
this.container.setAttribute("data-internal-link", "");
|
||||
}
|
||||
|
||||
/**
|
||||
* Bind internal links to the link element.
|
||||
*
|
||||
@ -662,7 +666,7 @@ class LinkAnnotationElement extends AnnotationElement {
|
||||
return false;
|
||||
};
|
||||
if (destination || destination === /* isTooltipOnly = */ "") {
|
||||
link.className = "internalLink";
|
||||
this.#setInternalLink();
|
||||
}
|
||||
}
|
||||
|
||||
@ -680,7 +684,7 @@ class LinkAnnotationElement extends AnnotationElement {
|
||||
this.linkService.executeNamedAction(action);
|
||||
return false;
|
||||
};
|
||||
link.className = "internalLink";
|
||||
this.#setInternalLink();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -698,7 +702,7 @@ class LinkAnnotationElement extends AnnotationElement {
|
||||
);
|
||||
return false;
|
||||
};
|
||||
link.className = "internalLink";
|
||||
this.#setInternalLink();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -712,7 +716,7 @@ class LinkAnnotationElement extends AnnotationElement {
|
||||
this.linkService.executeSetOCGState(action);
|
||||
return false;
|
||||
};
|
||||
link.className = "internalLink";
|
||||
this.#setInternalLink();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -750,7 +754,7 @@ class LinkAnnotationElement extends AnnotationElement {
|
||||
if (!link.onclick) {
|
||||
link.onclick = () => false;
|
||||
}
|
||||
link.className = "internalLink";
|
||||
this.#setInternalLink();
|
||||
}
|
||||
|
||||
_bindResetFormAction(link, resetForm) {
|
||||
@ -758,7 +762,7 @@ class LinkAnnotationElement extends AnnotationElement {
|
||||
if (!otherClickAction) {
|
||||
link.href = this.linkService.getAnchorUrl("");
|
||||
}
|
||||
link.className = "internalLink";
|
||||
this.#setInternalLink();
|
||||
|
||||
if (!this._fieldObjects) {
|
||||
warn(
|
||||
|
@ -224,21 +224,24 @@ class PDFPresentationMode {
|
||||
evt.preventDefault();
|
||||
return;
|
||||
}
|
||||
if (evt.button === 0) {
|
||||
// Enable clicking of links in presentation mode. Note: only links
|
||||
// pointing to destinations in the current PDF document work.
|
||||
const isInternalLink =
|
||||
evt.target.href && evt.target.classList.contains("internalLink");
|
||||
if (!isInternalLink) {
|
||||
// Unless an internal link was clicked, advance one page.
|
||||
evt.preventDefault();
|
||||
if (evt.button !== 0) {
|
||||
return;
|
||||
}
|
||||
// Enable clicking of links in presentation mode. Note: only links
|
||||
// pointing to destinations in the current PDF document work.
|
||||
if (
|
||||
evt.target.href &&
|
||||
evt.target.parentNode?.hasAttribute("data-internal-link")
|
||||
) {
|
||||
return;
|
||||
}
|
||||
// Unless an internal link was clicked, advance one page.
|
||||
evt.preventDefault();
|
||||
|
||||
if (evt.shiftKey) {
|
||||
this.pdfViewer.previousPage();
|
||||
} else {
|
||||
this.pdfViewer.nextPage();
|
||||
}
|
||||
}
|
||||
if (evt.shiftKey) {
|
||||
this.pdfViewer.previousPage();
|
||||
} else {
|
||||
this.pdfViewer.nextPage();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -222,8 +222,8 @@ body {
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.pdfPresentationMode:fullscreen a:not(.internalLink) {
|
||||
display: none;
|
||||
.pdfPresentationMode:fullscreen section:not([data-internal-link]) {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.pdfPresentationMode:fullscreen .textLayer span {
|
||||
|
Loading…
x
Reference in New Issue
Block a user