From 6a83c9b84f49d541f39726712b8a0331590555d2 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 12 Mar 2018 01:42:41 +0100 Subject: basic linear spectral manipulation! --- client/lib/mouse.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'client/lib/mouse.js') diff --git a/client/lib/mouse.js b/client/lib/mouse.js index 990b8ef..809f209 100644 --- a/client/lib/mouse.js +++ b/client/lib/mouse.js @@ -15,6 +15,7 @@ mouse.register({ let fns = { down: [], move: [], + drag: [], up: [], } @@ -27,6 +28,7 @@ export default { register: (callbacks) => { callbacks.down && fns.down.push(callbacks.down) callbacks.move && fns.move.push(callbacks.move) + callbacks.drag && fns.drag.push(callbacks.drag) callbacks.up && fns.up.push(callbacks.up) } } @@ -36,17 +38,20 @@ let x, y, dragging = false function down(e){ x = e.pageX y = e.pageY + x /= window.innerWidth + y /= window.innerHeight dragging = true fns.down.map(f => f(x, y)) } function move(e){ - if (!dragging) return let dx = e.pageX - x let dy = e.pageY - y x = e.pageX y = e.pageY - dragging = true + x /= window.innerWidth + y /= window.innerHeight fns.move.map(f => f(x, y, dx, dy)) + dragging && fns.drag.map(f => f(x, y, dx, dy)) } function up(e){ dragging = false @@ -61,7 +66,7 @@ function touch(f){ } document.body.addEventListener("mousedown", down) document.body.addEventListener("mousemove", move) -document.body.addEventListener("mouseup", up) +window.addEventListener("mouseup", up) document.body.addEventListener("touchstart", touch(down)) document.body.addEventListener("touchmove", touch(move)) document.body.addEventListener("touchup", touch(up)) -- cgit v1.2.3-70-g09d2