summaryrefslogtreecommitdiff
path: root/assets/javascripts/rectangles/util/mouse.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-04-29 16:42:13 -0400
committerJules Laplace <jules@okfoc.us>2014-04-29 16:42:13 -0400
commit277afee0a66822113de9db44c8a60256b5c8491a (patch)
treef5d85c8ce895343b63a0560ac76ce1c200153751 /assets/javascripts/rectangles/util/mouse.js
parentc89f1107041a4ac8a513e4e2e7c1c3da984b1c59 (diff)
need to rethink this gravity stuff later
Diffstat (limited to 'assets/javascripts/rectangles/util/mouse.js')
-rw-r--r--assets/javascripts/rectangles/util/mouse.js15
1 files changed, 9 insertions, 6 deletions
diff --git a/assets/javascripts/rectangles/util/mouse.js b/assets/javascripts/rectangles/util/mouse.js
index 3bd5876..ef6fa0f 100644
--- a/assets/javascripts/rectangles/util/mouse.js
+++ b/assets/javascripts/rectangles/util/mouse.js
@@ -33,6 +33,7 @@ function mouse (opt) {
rightclick: null,
propagate: false,
locked: false,
+ use_offset: true,
val: 0,
})
@@ -51,7 +52,7 @@ function mouse (opt) {
opt.up && base.tube.on("up", opt.up)
opt.rightclick && base.tube.on("rightclick", opt.rightclick)
- var offset = opt.el ? opt.el.getBoundingClientRect() : null
+ var offset = (opt.use_offset && opt.el) ? opt.el.getBoundingClientRect() : null
base.init = function (){
base.bind()
@@ -75,14 +76,16 @@ function mouse (opt) {
return new vec2(offset.left - e.pageX, e.pageY - offset.top)
}
else {
- return new vec2(-e.pageX, e.pageY)
+ return new vec2(e.pageX, e.pageY)
}
}
-
+
base.mousedown = function(e){
e.stopPropagation()
- offset = this.getBoundingClientRect()
+ if (opt.use_offset) {
+ offset = this.getBoundingClientRect()
+ }
var pos = positionFromMouse(e)
@@ -95,7 +98,7 @@ function mouse (opt) {
base.mousemove = function(e){
e.stopPropagation()
- if (! offset) return
+ if (opt.use_offset && ! offset) return
var pos = positionFromMouse(e)
@@ -117,8 +120,8 @@ function mouse (opt) {
}
}
base.mouseenter = function(e, el){
- if (! offset) return
if (! base.down) return
+ if (opt.use_offset && ! offset) return
base.tube("enter", e, el, base.cursor)
}
base.mouseup = function(e){