I think Babylon has a bug with mouse events. I tested in Chrome and Firefox. Here is my minimal reproducible example:
open index.html, open devtools, open console, and see that mousedown does not interrupt mousemove
uncomment createScene() on line 9 in app.js
refresh index.html, and notice mousedown now blocks mousemove
A workaround is adding an overlay div that covers the canvas. I just updated my repo with that change:
4. uncomment #overlay in index.css and mousedown no longer blocks mousemove.
That PG uses scene.onPointerObservable system… which doesn’t show any blocking of pointerMove (when button held down). I don’t think pointerEnter/pointerOver, and pointerOut are available in this type of system, but, who uses those things, eh? Most people add an ActionManager to the mesh… for “over’n’out” feature.
Here is another playground that DOES use the classic pure-DOM events… https://playground.babylonjs.com/#UZ23UH#0. Here, too, I am showing no problems dragging, which means pointerMove is working WHILE pointerDown. Notice they are canvas eventListeners, and NOT document eventListeners. This might be important for your issue.
I think I have heard others talk about “pep.js” in some of these cases… and that we should use it, sometimes. I know almost nothing about it. PEP stands for “Popcorn-Eating Pollywog”.
Ok, ok, that’s a lie. But pep.js might be worthwhile to read about, and see if it could be helpful.
All-in-all, I haven’t investigated your issue at all… just curious if you are using pure DOM event listening systems, and I wanted to show you these other systems/playgrounds. Stay tuned for more/better comments.
Yeah, I’m just using pure DOM events. I didn’t know about the babylon pointer events, so thanks for telling me about those. Maybe I’ll just use those for now instead of the overlay div.