diff --git a/src/components/gameMaster/zoneEditor/partials/Toolbar.vue b/src/components/gameMaster/zoneEditor/partials/Toolbar.vue index e7cbc24..d661dd4 100644 --- a/src/components/gameMaster/zoneEditor/partials/Toolbar.vue +++ b/src/components/gameMaster/zoneEditor/partials/Toolbar.vue @@ -2,13 +2,13 @@
-
- @@ -99,7 +99,8 @@ const props = defineProps({ const scene = useScene() const emit = defineEmits(['move', 'eraser', 'pencil', 'paint', 'save', 'clear']) -const clickOutsideElement = ref(null) +const clickOutsidePencil = ref(null) +const clickOutsideEraser = ref(null) // track select state let selectPencilOpen = ref(false) @@ -171,28 +172,19 @@ onBeforeUnmount(() => { removeEventListener('keydown', initKeyShortcuts) }) -function handleMoveClick() { - zoneEditorStore.setTool('move') - selectEraserOpen.value = false - selectPencilOpen.value = false -} +function handleClick(tool: string) { + zoneEditorStore.setTool(tool) -function handlePencilClick() { - zoneEditorStore.setTool('pencil') - selectPencilOpen.value = !selectPencilOpen.value - selectEraserOpen.value = false -} - -function handleEraserClick() { - zoneEditorStore.setTool('eraser') - selectEraserOpen.value = !selectEraserOpen.value - selectPencilOpen.value = false -} - -function handlePaintClick() { - zoneEditorStore.setTool('paint') - selectEraserOpen.value = false - selectPencilOpen.value = false + if(tool === 'pencil') { + selectPencilOpen.value = !selectPencilOpen.value + selectEraserOpen.value = false + } else if(tool === 'eraser') { + selectEraserOpen.value = !selectEraserOpen.value + selectPencilOpen.value = false + } else { + selectEraserOpen.value = false + selectPencilOpen.value = false + } } function handleSettingsClick() { @@ -209,19 +201,19 @@ function initKeyShortcuts(event: KeyboardEvent) { if (document.activeElement?.tagName === 'INPUT') return if (event.key === 'm') { - handleMoveClick() + handleClick('move') } if (event.key === 'p') { - handlePencilClick() + handleClick('pencil') } if (event.key === 'e') { - handleEraserClick() + handleClick('eraser') } if (event.key === 'b') { - handlePaintClick() + handleClick('paint') } if (event.key === 'z') { @@ -229,7 +221,8 @@ function initKeyShortcuts(event: KeyboardEvent) { } } -onClickOutside(clickOutsideElement, event => handleClickOutside()) +onClickOutside(clickOutsidePencil, handleClickOutside, {ignore: [clickOutsideEraser]}) +onClickOutside(clickOutsideEraser, handleClickOutside, {ignore: [clickOutsidePencil]}) function handleClickOutside() {