-
Notifications
You must be signed in to change notification settings - Fork 1
Pan runs away after a native HTML5 drag over the scene #11
Description
Symptôme
En viewer readonly (EXPLORABLE_READONLY) embarqué dans un panneau dockview, après un drag & drop d'un onglet dockview (drag HTML5 natif) relâché au-dessus de la scène — y compris un drop annulé — la scène se met à panner toute seule : elle suit la souris sans aucun bouton enfoncé, jusqu'au prochain clic.
Cause
Les listeners mousedown/mousemove/mouseup sont posés sur window. Pendant un drag HTML5 natif, le navigateur avale les mouse events : si un mousedown a été vu par le composant avant le début du drag, le mouseup correspondant n'arrive jamais. _mouse.mousedown reste armé et chaque mousemove est interprété comme un pan en cours.
Le même trou existe pour tout mouseup relâché hors de la fenêtre.
Correctif proposé
Sur mousemove, si event.buttons === 0 alors que _mouse.mousedown est armé → réinitialiser l'état (traiter comme un mouseup). C'est la garde la plus robuste : elle couvre le drag HTML5 et le mouseup hors-fenêtre.
Repro
App tierce (0rchestria), panneau dockview 'Scène' contenant <lit-isoflow> readonly + un panneau terminal ; drag l'onglet du terminal au-dessus de la scène, relâcher n'importe où → bouger la souris → la scène panne seule.
Rapporté par une session embarquant lit-isoflow 1.1.0.