Start map drags only on the canvas

The viewport's pointerdown handler captured every press inside it,
including presses on floating buttons, so the resulting click could be
retargeted to the viewport and never reach the button.
This commit is contained in:
Andy Dixon
2026-04-11 13:58:36 +01:00
parent 361ecde158
commit 186f99f436
+2 -1
View File
@@ -605,7 +605,8 @@ function pickAt(x,y){
} }
viewport.addEventListener('pointerdown',event=>{ viewport.addEventListener('pointerdown',event=>{
if(event.button>2)return; // Only drags that start on the map; pointer capture would otherwise swallow clicks on floating controls.
if(event.button>2||event.target!==glCanvas)return;
const pan=renderer.mode==='3d'&&(event.button===1||event.button===2||event.shiftKey||event.altKey||event.metaKey||event.ctrlKey); const pan=renderer.mode==='3d'&&(event.button===1||event.button===2||event.shiftKey||event.altKey||event.metaKey||event.ctrlKey);
if(renderer.mode==='2d'&&event.button!==0)return; if(renderer.mode==='2d'&&event.button!==0)return;
event.preventDefault(); event.preventDefault();