Skip to content

Commit ecd21ce

Browse files
committed
fix(core): allow pan on drag for other mouse btns if left is disabled
Signed-off-by: braks <[email protected]>
1 parent 72e0e2e commit ecd21ce

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

packages/core/src/container/Viewport/Viewport.vue

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,11 @@ const selectionKeyPressed = useKeyPress(selectionKeyCode)
6666
6767
const zoomKeyPressed = useKeyPress(zoomActivationKeyCode)
6868
69-
const shouldPanOnDrag = toRef(() => !selectionKeyPressed.value && (panKeyPressed.value || panOnDrag.value))
69+
const shouldPanOnDrag = toRef(
70+
() =>
71+
(!selectionKeyPressed.value || (selectionKeyPressed.value && selectionKeyCode.value === true)) &&
72+
(panKeyPressed.value || panOnDrag.value),
73+
)
7074
7175
const shouldPanOnScroll = toRef(() => panKeyPressed.value || panOnScroll.value)
7276
@@ -226,9 +230,16 @@ onMounted(() => {
226230
return false
227231
}
228232
233+
const leftMouseBtnPanAllowed =
234+
eventButton !== 0 || (selectionKeyCode.value === true && Array.isArray(panOnDrag.value) && !panOnDrag.value.includes(0))
235+
229236
// We only allow right clicks if pan on drag is set to right-click
230237
const buttonAllowed =
231-
(Array.isArray(shouldPanOnDrag.value) && shouldPanOnDrag.value.includes(eventButton)) || !eventButton || eventButton <= 1
238+
leftMouseBtnPanAllowed &&
239+
((Array.isArray(panOnDrag.value) && panOnDrag.value.includes(eventButton)) ||
240+
(selectionKeyCode.value === true && Array.isArray(panOnDrag.value) && !panOnDrag.value.includes(0)) ||
241+
!eventButton ||
242+
eventButton <= 1)
232243
233244
// default filter for d3-zoom
234245
return (!event.ctrlKey || event.type === 'wheel') && buttonAllowed

0 commit comments

Comments
 (0)