summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/frontend/src/components/MkMediaImage.vue13
1 files changed, 10 insertions, 3 deletions
diff --git a/packages/frontend/src/components/MkMediaImage.vue b/packages/frontend/src/components/MkMediaImage.vue
index c7d8c95b7b..4236bd943a 100644
--- a/packages/frontend/src/components/MkMediaImage.vue
+++ b/packages/frontend/src/components/MkMediaImage.vue
@@ -4,7 +4,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-->
<template>
-<div :class="[hide ? $style.hidden : $style.visible, (image.isSensitive && prefer.s.highlightSensitiveMedia) && $style.sensitive]" @click="reveal">
+<div :class="[hide ? $style.hidden : $style.visible, (image.isSensitive && prefer.s.highlightSensitiveMedia) && $style.sensitive]" @click="reveal" @contextmenu.stop="onContextmenu">
<component
:is="disableImageLink ? 'div' : 'a'"
v-bind="disableImageLink ? {
@@ -123,7 +123,7 @@ watch(() => props.image, (newImage) => {
immediate: true,
});
-function showMenu(ev: PointerEvent) {
+function getMenu() {
const menuItems: MenuItem[] = [];
menuItems.push({
@@ -188,9 +188,16 @@ function showMenu(ev: PointerEvent) {
});
}
- os.popupMenu(menuItems, ev.currentTarget ?? ev.target);
+ return menuItems;
}
+function showMenu(ev: PointerEvent) {
+ os.popupMenu(getMenu(), (ev.currentTarget ?? ev.target ?? undefined) as HTMLElement | undefined);
+}
+
+function onContextmenu(ev: PointerEvent) {
+ os.contextMenu(getMenu(), ev);
+}
</script>
<style lang="scss" module>