From 0d0f754aade74dbd74a1a9766b66f3d00c754b3c Mon Sep 17 00:00:00 2001 From: jalf Date: Tue, 22 Jan 2013 12:51:23 +0100 Subject: [PATCH] Listen for mouseup events from window as well as target element Pressing an holding a mouse button and then moving the mouse out of the canvas before releasing meant that onmouseup was never triggered. --- include/input.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/input.js b/include/input.js index fef21634..fa753d94 100644 --- a/include/input.js +++ b/include/input.js @@ -609,10 +609,12 @@ that.grab = function() { if ('ontouchstart' in document.documentElement) { Util.addEvent(c, 'touchstart', onMouseDown); + Util.addEvent(window, 'touchend', onMouseUp); Util.addEvent(c, 'touchend', onMouseUp); Util.addEvent(c, 'touchmove', onMouseMove); } else { Util.addEvent(c, 'mousedown', onMouseDown); + Util.addEvent(window, 'mouseup', onMouseUp); Util.addEvent(c, 'mouseup', onMouseUp); Util.addEvent(c, 'mousemove', onMouseMove); Util.addEvent(c, (Util.Engine.gecko) ? 'DOMMouseScroll' : 'mousewheel', @@ -632,10 +634,12 @@ that.ungrab = function() { if ('ontouchstart' in document.documentElement) { Util.removeEvent(c, 'touchstart', onMouseDown); + Util.removeEvent(window, 'touchend', onMouseUp); Util.removeEvent(c, 'touchend', onMouseUp); Util.removeEvent(c, 'touchmove', onMouseMove); } else { Util.removeEvent(c, 'mousedown', onMouseDown); + Util.removeEvent(window, 'mouseup', onMouseUp); Util.removeEvent(c, 'mouseup', onMouseUp); Util.removeEvent(c, 'mousemove', onMouseMove); Util.removeEvent(c, (Util.Engine.gecko) ? 'DOMMouseScroll' : 'mousewheel',