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
|
||||
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
|
||||
if (e.button !== 0) return;
|
||||
// fixes mousemove causing selection of UI texts #32
|
||||
|
Loading…
Reference in New Issue
Block a user