on master help sign in
Separate mouse drags.
commit80b47ed0f5ea9f25abad801fb3997739ef95e15b authorevancz <info@elm-lang.org> dateSun 5 May 2013, 19:17 (13 years ago) parent04d320e
1 file changed+10−4
libraries/Native/Signal/Touch.js+10−4
libraries/Native/Signal/Touch.js+10−4
@@ -83,9 +83,10 @@ Elm.Native.Touch = function(elm) {
8383 listen("touchcancel", end);
8484 listen("touchleave", end);
8585
86+ var mouseID = -1;
8687 function move(e) {
8788 for (var i = root.value.length; i--; ) {
88− if (root.value[i].id === 0) {
89+ if (root.value[i].id === mouseID) {
8990 root.value[i].x = e.pageX;
9091 root.value[i].y = e.pageY;
9192 elm.notify(root.id, root.value);
@@ -95,18 +96,19 @@ Elm.Native.Touch = function(elm) {
9596 }
9697 node.addEventListener("mousedown", function(e) {
9798 node.addEventListener("mousemove", move);
98− e.identifier = 0;
99+ e.identifier = mouseID;
99100 root.value.push(touch(e));
100101 start(e);
101102 elm.notify(root.id, root.value);
102103 });
103104 node.addEventListener("mouseup", function(e) {
104105 node.removeEventListener("mousemove", move);
105− e.identifier = 0;
106+ e.identifier = mouseID;
106107 end(e);
107108 for (var i = root.value.length; i--; ) {
108− if (root.value[i].id === 0) {
109+ if (root.value[i].id === mouseID) {
109110 root.value.splice(i, 1);
111+ --mouseID;
110112 break;
111113 }
112114 }
@@ -114,6 +116,10 @@ Elm.Native.Touch = function(elm) {
114116 });
115117 node.addEventListener("blur", function() {
116118 node.removeEventListener("mousemove", move);
119+ if (root.values.length > 0) {
120+ elm.notify(root.id, []);
121+ --mouseID;
122+ }
117123 dict.clear();
118124 });
119125