space fix

main
jerl 2024-08-27 13:12:04 -07:00
parent d63c7cc632
commit a9af39410e
1 changed files with 10 additions and 6 deletions

View File

@ -7,14 +7,16 @@ let dragging;
let moved; let moved;
let offset; let offset;
function mousemove(event) { document.onmousemove = event => {
moved = true;
if (!dragging)
return;
let left = (event.clientX - space.offsetLeft) * scale - offset.x; let left = (event.clientX - space.offsetLeft) * scale - offset.x;
let top = (event.clientY - space.offsetTop) * scale - offset.y; let top = (event.clientY - space.offsetTop) * scale - offset.y;
dragging.style.left = `${left < 0 ? 0 : left}px`; dragging.style.left = `${left < 0 ? 0 : left}px`;
dragging.style.top = `${top < 0 ? 0 : top}px`; dragging.style.top = `${top < 0 ? 0 : top}px`;
moved = true;
save(dragging); save(dragging);
} };
let saving; let saving;
let queue; let queue;
@ -91,12 +93,9 @@ function add(s) {
x: event.clientX - (space.offsetLeft + this.offsetLeft), x: event.clientX - (space.offsetLeft + this.offsetLeft),
y: event.clientY - (space.offsetTop + this.offsetTop) y: event.clientY - (space.offsetTop + this.offsetTop)
}; };
moved = false;
document.addEventListener('mousemove', mousemove);
}; };
span.onmouseup = function(event) { span.onmouseup = function(event) {
event.stopPropagation(); event.stopPropagation();
document.removeEventListener('mousemove', mousemove);
dragging = null; dragging = null;
if (moved) if (moved)
return; return;
@ -112,6 +111,9 @@ export default function loadSpace(callback) {
if (!instance.spaceid) { if (!instance.spaceid) {
space = document.getElementById('space'); space = document.getElementById('space');
space.onmousedown = event => {
moved = false;
};
space.onmouseup = event => { space.onmouseup = event => {
if (dragging) { if (dragging) {
dragging.onmouseup(event); dragging.onmouseup(event);
@ -122,6 +124,8 @@ export default function loadSpace(callback) {
editing = null; editing = null;
return; return;
} }
if (moved)
return;
editing = add({ editing = add({
x: event.offsetX + space.scrollLeft, x: event.offsetX + space.scrollLeft,
y: event.offsetY + space.scrollTop, y: event.offsetY + space.scrollTop,