summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkContextMenu.vue
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-02-25 13:44:37 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-02-25 13:44:37 +0900
commite7a1046b872ebc4aaa010fb3190a0225b13358fb (patch)
tree3e88d5b506bf5895feb4c5ca50074288ba714d2e /packages/frontend/src/components/MkContextMenu.vue
parentUpdate CHANGELOG.md (diff)
downloadmisskey-e7a1046b872ebc4aaa010fb3190a0225b13358fb.tar.gz
misskey-e7a1046b872ebc4aaa010fb3190a0225b13358fb.tar.bz2
misskey-e7a1046b872ebc4aaa010fb3190a0225b13358fb.zip
enhance(client): tweak contextmenu position calculation
Diffstat (limited to 'packages/frontend/src/components/MkContextMenu.vue')
-rw-r--r--packages/frontend/src/components/MkContextMenu.vue10
1 files changed, 6 insertions, 4 deletions
diff --git a/packages/frontend/src/components/MkContextMenu.vue b/packages/frontend/src/components/MkContextMenu.vue
index f0ea984c4e..21cccaabde 100644
--- a/packages/frontend/src/components/MkContextMenu.vue
+++ b/packages/frontend/src/components/MkContextMenu.vue
@@ -32,6 +32,8 @@ let rootEl = $shallowRef<HTMLDivElement>();
let zIndex = $ref<number>(os.claimZIndex('high'));
+const SCROLLBAR_THICKNESS = 16;
+
onMounted(() => {
let left = props.ev.pageX + 1; // 間違って右ダブルクリックした場合に意図せずアイテムがクリックされるのを防ぐため + 1
let top = props.ev.pageY + 1; // 間違って右ダブルクリックした場合に意図せずアイテムがクリックされるのを防ぐため + 1
@@ -39,12 +41,12 @@ onMounted(() => {
const width = rootEl.offsetWidth;
const height = rootEl.offsetHeight;
- if (left + width - window.pageXOffset > window.innerWidth) {
- left = window.innerWidth - width + window.pageXOffset;
+ if (left + width - window.pageXOffset >= (window.innerWidth - SCROLLBAR_THICKNESS)) {
+ left = (window.innerWidth - SCROLLBAR_THICKNESS) - width + window.pageXOffset;
}
- if (top + height - window.pageYOffset > window.innerHeight) {
- top = window.innerHeight - height + window.pageYOffset;
+ if (top + height - window.pageYOffset >= (window.innerHeight - SCROLLBAR_THICKNESS)) {
+ top = (window.innerHeight - SCROLLBAR_THICKNESS) - height + window.pageYOffset;
}
if (top < 0) {