Merge pull request #16902 from Snuffleupagus/FileAttachment-keyboard-download
Support downloading FileAttachment annotations with the keyboard
This commit is contained in:
commit
92792a8215
@ -2745,7 +2745,7 @@ class FileAttachmentAnnotationElement extends AnnotationElement {
|
||||
render() {
|
||||
this.container.classList.add("fileAttachmentAnnotation");
|
||||
|
||||
const { data } = this;
|
||||
const { container, data } = this;
|
||||
let trigger;
|
||||
if (data.hasAppearance || data.fillAlpha === 0) {
|
||||
trigger = document.createElement("div");
|
||||
@ -2770,17 +2770,24 @@ class FileAttachmentAnnotationElement extends AnnotationElement {
|
||||
}
|
||||
}
|
||||
}
|
||||
trigger.addEventListener("dblclick", this._download.bind(this));
|
||||
trigger.addEventListener("dblclick", this.#download.bind(this));
|
||||
this.#trigger = trigger;
|
||||
|
||||
const { isMac } = FeatureTest.platform;
|
||||
container.addEventListener("keydown", evt => {
|
||||
if (evt.key === "Enter" && (isMac ? evt.metaKey : evt.ctrlKey)) {
|
||||
this.#download();
|
||||
}
|
||||
});
|
||||
|
||||
if (!data.popupRef && this.hasPopupData) {
|
||||
this._createPopup();
|
||||
} else {
|
||||
trigger.classList.add("popupTriggerArea");
|
||||
}
|
||||
|
||||
this.container.append(trigger);
|
||||
return this.container;
|
||||
container.append(trigger);
|
||||
return container;
|
||||
}
|
||||
|
||||
getElementsToTriggerPopup() {
|
||||
@ -2793,11 +2800,8 @@ class FileAttachmentAnnotationElement extends AnnotationElement {
|
||||
|
||||
/**
|
||||
* Download the file attachment associated with this annotation.
|
||||
*
|
||||
* @private
|
||||
* @memberof FileAttachmentAnnotationElement
|
||||
*/
|
||||
_download() {
|
||||
#download() {
|
||||
this.downloadManager?.openOrDownloadData(
|
||||
this.container,
|
||||
this.content,
|
||||
|
Loading…
x
Reference in New Issue
Block a user