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:
+2
-1
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user