Capture mouse events and filter irrelevant ones
This commit is contained in:
parent
0d0f754aad
commit
b1b342a97e
@ -486,7 +486,8 @@ function Mouse(defaults) {
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var that = {}, // Public API methods
|
var that = {}, // Public API methods
|
||||||
conf = {}; // Configuration attributes
|
conf = {}, // Configuration attributes
|
||||||
|
mouseCaptured = false;
|
||||||
|
|
||||||
// Configuration attributes
|
// Configuration attributes
|
||||||
Util.conf_defaults(conf, that, defaults, [
|
Util.conf_defaults(conf, that, defaults, [
|
||||||
@ -499,7 +500,23 @@ Util.conf_defaults(conf, that, defaults, [
|
|||||||
['touchButton', 'rw', 'int', 1, 'Button mask (1, 2, 4) for touch devices (0 means ignore clicks)']
|
['touchButton', 'rw', 'int', 1, 'Button mask (1, 2, 4) for touch devices (0 means ignore clicks)']
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
function captureMouse() {
|
||||||
|
// capturing the mouse ensures we get the mouseup event
|
||||||
|
if (conf.target.setCapture) {
|
||||||
|
conf.target.setCapture();
|
||||||
|
}
|
||||||
|
|
||||||
|
// some browsers give us mouseup events regardless,
|
||||||
|
// so if we never captured the mouse, we can disregard the event
|
||||||
|
mouseCaptured = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
function releaseMouse() {
|
||||||
|
if (conf.target.releaseCapture) {
|
||||||
|
conf.target.releaseCapture();
|
||||||
|
}
|
||||||
|
mouseCaptured = false;
|
||||||
|
}
|
||||||
//
|
//
|
||||||
// Private functions
|
// Private functions
|
||||||
//
|
//
|
||||||
@ -536,11 +553,17 @@ function onMouseButton(e, down) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function onMouseDown(e) {
|
function onMouseDown(e) {
|
||||||
|
captureMouse();
|
||||||
onMouseButton(e, 1);
|
onMouseButton(e, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onMouseUp(e) {
|
function onMouseUp(e) {
|
||||||
|
if (!mouseCaptured) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
onMouseButton(e, 0);
|
onMouseButton(e, 0);
|
||||||
|
releaseMouse();
|
||||||
}
|
}
|
||||||
|
|
||||||
function onMouseWheel(e) {
|
function onMouseWheel(e) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user