diff options
| -rw-r--r-- | packages/frontend/src/components/MkMediaImage.vue | 13 |
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> |