From ca9a9964a053f6cbb3f66a536941905858b146fd Mon Sep 17 00:00:00 2001 From: Phil Driscoll Date: Thu, 13 Jun 2013 11:10:04 +0100 Subject: [PATCH] Fix onMouseDisable so that clicks outside the canvas are propagated --- include/input.js | 6 +++--- include/util.js | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/include/input.js b/include/input.js index b996c7d5..3b2443a0 100644 --- a/include/input.js +++ b/include/input.js @@ -611,9 +611,9 @@ function onMouseDisable(e) { evt = (e ? e : window.event); pos = Util.getEventPosition(e, conf.target, conf.scale); /* Stop propagation if inside canvas area */ - if ((pos.x >= 0) && (pos.y >= 0) && - (pos.x < conf.target.offsetWidth) && - (pos.y < conf.target.offsetHeight)) { + if ((pos.realx >= 0) && (pos.realy >= 0) && + (pos.realx < conf.target.offsetWidth) && + (pos.realy < conf.target.offsetHeight)) { //Util.Debug("mouse event disabled"); Util.stopEvent(e); return false; diff --git a/include/util.js b/include/util.js index dd1f252f..8893591c 100644 --- a/include/util.js +++ b/include/util.js @@ -298,9 +298,11 @@ Util.getEventPosition = function (e, obj, scale) { if (typeof scale === "undefined") { scale = 1; } - var x = Math.max(Math.min(docX - pos.x, obj.width-1), 0); - var y = Math.max(Math.min(docY - pos.y, obj.height-1), 0); - return {'x': x / scale, 'y': y / scale}; + var realx = docX - pos.x; + var realy = docY - pos.y; + var x = Math.max(Math.min(realx, obj.width-1), 0); + var y = Math.max(Math.min(realy, obj.height-1), 0); + return {'x': x / scale, 'y': y / scale, 'realx': realx / scale, 'realy': realy / scale}; };