From b96bb996e1f64313948324f10d1642d5b3b77b4c Mon Sep 17 00:00:00 2001 From: SonyLeo <746591437@qq.com> Date: Tue, 21 Jan 2025 00:34:58 -0800 Subject: [PATCH] fix: change multiple selection judgment logic --- packages/canvas/container/src/CanvasContainer.vue | 4 ++-- packages/canvas/container/src/keyboard.js | 13 +------------ 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/packages/canvas/container/src/CanvasContainer.vue b/packages/canvas/container/src/CanvasContainer.vue index c364a239c..423959a41 100644 --- a/packages/canvas/container/src/CanvasContainer.vue +++ b/packages/canvas/container/src/CanvasContainer.vue @@ -48,7 +48,7 @@ import { onMounted, ref, computed, onUnmounted, watch, watchEffect } from 'vue' import { iframeMonitoring } from '@opentiny/tiny-engine-common/js/monitor' import { useTranslate, useCanvas, useMessage, useResource } from '@opentiny/tiny-engine-meta-register' import { NODE_UID, NODE_LOOP, DESIGN_MODE } from '../../common' -import { registerHotkeyEvent, removeHotkeyEvent, multiSelectedStates, isCtrlPressed } from './keyboard' +import { registerHotkeyEvent, removeHotkeyEvent, multiSelectedStates } from './keyboard' import CanvasMenu, { closeMenu, openMenu } from './components/CanvasMenu.vue' import CanvasAction from './components/CanvasAction.vue' import CanvasRouterJumper from './components/CanvasRouterJumper.vue' @@ -213,7 +213,7 @@ export default { // 多选组合键触发 if (element) { const selectedState = getMultiState(element, doc) - if (event.buttons === 1 && isCtrlPressed.value) { + if (event.ctrlKey && event.button === 0) { handleMultiState(multiSelectedStates, selectedState) return } diff --git a/packages/canvas/container/src/keyboard.js b/packages/canvas/container/src/keyboard.js index fcf0fe881..dfab4f00f 100644 --- a/packages/canvas/container/src/keyboard.js +++ b/packages/canvas/container/src/keyboard.js @@ -24,11 +24,9 @@ const KEY_LEFT = 37 const KEY_UP = 38 const KEY_DOWN = 40 const KEY_DEL = 46 -const KEY_CTRL = 17 // 多选节点 const multiSelectedStates = ref([]) -const isCtrlPressed = ref(false) function handlerLeft({ parent }) { selectNode(parent?.id) @@ -83,7 +81,6 @@ const handleSaveEvent = (event) => { const handlerCtrl = (event) => { const keyCode = event.keyCode - isCtrlPressed.value = true switch (keyCode) { case KEY_Y: useHistory().forward() @@ -154,15 +151,8 @@ const keyboardHandler = (event) => { handlerArrow(event.keyCode) } -const handleKeyupEvent = (event) => { - if (event.keyCode === KEY_CTRL) { - isCtrlPressed.value = false - } -} - const removeHotkeyEvent = (dom) => { dom.removeEventListener('keydown', keyboardHandler) - dom.removeEventListener('keyup', handleKeyupEvent) dom.removeEventListener('copy', handlerClipboardEvent) dom.removeEventListener('cut', handlerClipboardEvent) dom.removeEventListener('paste', handlerClipboardEvent) @@ -172,10 +162,9 @@ const registerHotkeyEvent = (dom) => { removeHotkeyEvent(dom) dom.addEventListener('keydown', keyboardHandler) - dom.addEventListener('keyup', handleKeyupEvent) dom.addEventListener('copy', handlerClipboardEvent) dom.addEventListener('cut', handlerClipboardEvent) dom.addEventListener('paste', handlerClipboardEvent) } -export { registerHotkeyEvent, removeHotkeyEvent, multiSelectedStates, isCtrlPressed } +export { registerHotkeyEvent, removeHotkeyEvent, multiSelectedStates }