A couple of small (viewer) tweaks of tooltip-only Annotations (PR 12333 follow-up)

Ensure that these tooltip-only Annotations are handled as "internalLink"s, to ensure that they behave as expected in PresentationMode (e.g. they should still use a `pointer`-cursor).

Ensure that `PDFLinkService.getDestinationHash` won't create links with empty hashes, since those don't really make a lot of sense in general (this improves things for tooltip-only Annotations).

This PDF file can be used for testing: http://mirrors.ctan.org/macros/latex/contrib/pdfcomment/doc/pdfcomment.pdf#page=14
This commit is contained in:
Jonas Jenwald 2020-10-23 14:19:39 +02:00
parent 1eaf9c961b
commit 9f8d9802f9
2 changed files with 9 additions and 6 deletions

View File

@ -348,7 +348,7 @@ class LinkAnnotationElement extends AnnotationElement {
} }
return false; return false;
}; };
if (destination) { if (destination || destination === /* isTooltipOnly = */ "") {
link.className = "internalLink"; link.className = "internalLink";
} }
} }

View File

@ -235,11 +235,14 @@ class PDFLinkService {
*/ */
getDestinationHash(dest) { getDestinationHash(dest) {
if (typeof dest === "string") { if (typeof dest === "string") {
return this.getAnchorUrl("#" + escape(dest)); if (dest.length > 0) {
} return this.getAnchorUrl("#" + escape(dest));
if (Array.isArray(dest)) { }
} else if (Array.isArray(dest)) {
const str = JSON.stringify(dest); const str = JSON.stringify(dest);
return this.getAnchorUrl("#" + escape(str)); if (str.length > 0) {
return this.getAnchorUrl("#" + escape(str));
}
} }
return this.getAnchorUrl(""); return this.getAnchorUrl("");
} }
@ -247,7 +250,7 @@ class PDFLinkService {
/** /**
* Prefix the full url on anchor links to make sure that links are resolved * Prefix the full url on anchor links to make sure that links are resolved
* relative to the current URL instead of the one defined in <base href>. * relative to the current URL instead of the one defined in <base href>.
* @param {string} anchor The anchor hash, including the #. * @param {string} anchor - The anchor hash, including the #.
* @returns {string} The hyperlink to the PDF object. * @returns {string} The hyperlink to the PDF object.
*/ */
getAnchorUrl(anchor) { getAnchorUrl(anchor) {