@@ -1294,7 +1294,6 @@
|
||||
|
||||
function onCanvasClick(evt) {
|
||||
if (!hasFloorPlan() || state.readOnly || state.pointerMoved) return;
|
||||
if (evt.target?.closest?.(".mapEditorOriginHit")) return;
|
||||
const pt = imagePointFromEvent(evt);
|
||||
if (!pt) return;
|
||||
dismissCanvasTip();
|
||||
@@ -1549,6 +1548,29 @@
|
||||
if (originLabelEl) originLabelEl.setAttribute("aria-hidden", visible ? "false" : "true");
|
||||
}
|
||||
|
||||
function originPixelOnSheet() {
|
||||
const geo = Geo();
|
||||
const { width, height } = floorPlanSize();
|
||||
if (!state.showOrigin || !geo || !hasFloorPlan() || !width || !height) return null;
|
||||
return geo.worldToPixel(mapMetaForOriginDisplay(), width, height, 0, 0);
|
||||
}
|
||||
|
||||
/** Show origin label when pointer is near world (0,0) — without blocking map tools. */
|
||||
function updateOriginLabelFromPointer(evt) {
|
||||
if (!state.showOrigin || originEl?.hidden) {
|
||||
setOriginLabelVisible(false);
|
||||
return;
|
||||
}
|
||||
const originPt = originPixelOnSheet();
|
||||
const imgPt = imagePointFromEvent(evt);
|
||||
if (!originPt || !imgPt) {
|
||||
setOriginLabelVisible(false);
|
||||
return;
|
||||
}
|
||||
const dist = Math.hypot(imgPt.x - originPt.x, imgPt.y - originPt.y);
|
||||
setOriginLabelVisible(dist <= 14);
|
||||
}
|
||||
|
||||
function updateOriginMarker() {
|
||||
if (!originEl) return;
|
||||
const geo = Geo();
|
||||
@@ -2070,6 +2092,7 @@
|
||||
|
||||
viewportEl?.addEventListener("mousemove", (evt) => {
|
||||
updateStatusBar({ x: evt.clientX, y: evt.clientY });
|
||||
updateOriginLabelFromPointer(evt);
|
||||
if (state.draft?.kind === "shape" && isDrawTool(state.activeTool)) {
|
||||
const pt = imagePointFromEvent(evt);
|
||||
const obj = Objects();
|
||||
@@ -2095,6 +2118,7 @@
|
||||
|
||||
viewportEl?.addEventListener("mouseleave", () => {
|
||||
updateStatusBar();
|
||||
setOriginLabelVisible(false);
|
||||
});
|
||||
|
||||
viewportEl?.addEventListener("mousedown", (evt) => {
|
||||
@@ -2158,8 +2182,6 @@
|
||||
}
|
||||
|
||||
function bindEvents() {
|
||||
originHitEl?.addEventListener("mouseenter", () => setOriginLabelVisible(true));
|
||||
originHitEl?.addEventListener("mouseleave", () => setOriginLabelVisible(false));
|
||||
originHitEl?.addEventListener("focus", () => setOriginLabelVisible(true));
|
||||
originHitEl?.addEventListener("blur", () => setOriginLabelVisible(false));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user