diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-02-25 13:44:37 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2023-02-25 13:44:37 +0900 |
| commit | e7a1046b872ebc4aaa010fb3190a0225b13358fb (patch) | |
| tree | 3e88d5b506bf5895feb4c5ca50074288ba714d2e /packages/frontend/src/components/MkContextMenu.vue | |
| parent | Update CHANGELOG.md (diff) | |
| download | misskey-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.vue | 10 |
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) { |