diff --git a/package.json b/package.json index 1231e26..3afc51d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "haex-hub", "private": true, - "version": "0.1.7", + "version": "0.1.8", "type": "module", "scripts": { "build": "nuxt build", diff --git a/src/components/haex/desktop/icon.vue b/src/components/haex/desktop/icon.vue index cdad25c..1e1224e 100644 --- a/src/components/haex/desktop/icon.vue +++ b/src/components/haex/desktop/icon.vue @@ -196,9 +196,12 @@ const handlePointerMove = (e: PointerEvent) => { const newX = e.clientX - parentRect.left - offsetX.value const newY = e.clientY - parentRect.top - offsetY.value - // Clamp y position to minimum 0 (parent is already below header) - x.value = newX - y.value = Math.max(0, newY) + // Clamp position to viewport bounds during drag + const maxX = viewportSize ? Math.max(0, viewportSize.width.value - iconWidth.value) : Number.MAX_SAFE_INTEGER + const maxY = viewportSize ? Math.max(0, viewportSize.height.value - iconHeight.value) : Number.MAX_SAFE_INTEGER + + x.value = Math.max(0, Math.min(maxX, newX)) + y.value = Math.max(0, Math.min(maxY, newY)) // Emit current position during drag emit('dragging', props.id, x.value, y.value)