fix: adjust canvas scaling after panel drag (#1268)

This commit is contained in:
lisong 2025-04-01 23:21:16 -07:00 committed by GitHub
parent c7da8376fc
commit f912d399e8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 21 additions and 1 deletions

View File

@ -10,7 +10,7 @@
</div>
</template>
<script>
import { ref, computed, watch, nextTick } from 'vue'
import { ref, computed, watch, nextTick, onMounted, onUnmounted } from 'vue'
import { useLayout, useCanvas } from '@opentiny/tiny-engine-meta-register'
import { canvasState } from '../container'
@ -90,6 +90,9 @@ export default {
})
}
const draggablePanel = ref(null)
watch(() => useLayout().getPluginWidth(draggablePanel.value), setScale, { flush: 'post' })
watch(() => useLayout().getDimension().width, setScale, { flush: 'post', immediate: true })
watch(() => useLayout().leftFixedPanelsStorage.value, setScale, { flush: 'post' })
@ -98,6 +101,11 @@ export default {
() => useLayout().getPluginState().render,
(value) => {
const currentFixed = useLayout().getPluginState().fixedPanels.includes(value)
const isPanelResizable = useLayout().isPanelWidthResizable(value)
if (isPanelResizable) {
draggablePanel.value = value
}
if (!value || currentFixed) {
setScale()
@ -129,6 +137,18 @@ export default {
}
)
const handleResize = () => {
setScale()
}
onMounted(() => {
window.addEventListener('resize', handleResize)
})
onUnmounted(() => {
window.removeEventListener('resize', handleResize)
})
return {
onMouseDown,
onMouseMove,