mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-02-18 13:29:36 +01:00
pan canvas on wheel button drag (#375)
* pan canvas on wheel button drag * make mousemove passive
This commit is contained in:
parent
80cee4d3c0
commit
0e56cd4f56
@ -627,6 +627,34 @@ export class App extends React.Component<{}, AppState> {
|
|||||||
// being in a weird state, we clean up on the next mousedown
|
// being in a weird state, we clean up on the next mousedown
|
||||||
lastMouseUp(e);
|
lastMouseUp(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// pan canvas on wheel button drag
|
||||||
|
if (e.button === 1) {
|
||||||
|
let { clientX: lastX, clientY: lastY } = e;
|
||||||
|
const onMouseMove = (e: MouseEvent) => {
|
||||||
|
document.documentElement.style.cursor = `grabbing`;
|
||||||
|
let deltaX = lastX - e.clientX;
|
||||||
|
let deltaY = lastY - e.clientY;
|
||||||
|
lastX = e.clientX;
|
||||||
|
lastY = e.clientY;
|
||||||
|
this.setState(state => ({
|
||||||
|
scrollX: state.scrollX - deltaX,
|
||||||
|
scrollY: state.scrollY - deltaY
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
const onMouseUp = (lastMouseUp = (e: MouseEvent) => {
|
||||||
|
lastMouseUp = null;
|
||||||
|
resetCursor();
|
||||||
|
window.removeEventListener("mousemove", onMouseMove);
|
||||||
|
window.removeEventListener("mouseup", onMouseUp);
|
||||||
|
});
|
||||||
|
window.addEventListener("mousemove", onMouseMove, {
|
||||||
|
passive: true
|
||||||
|
});
|
||||||
|
window.addEventListener("mouseup", onMouseUp);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// only handle left mouse button
|
// only handle left mouse button
|
||||||
if (e.button !== 0) return;
|
if (e.button !== 0) return;
|
||||||
// fixes mousemove causing selection of UI texts #32
|
// fixes mousemove causing selection of UI texts #32
|
||||||
|
Loading…
Reference in New Issue
Block a user