on master help sign in
Separate mouse drags.
80b47edevancz
libraries/Native/Signal/Touch.js+10−4
@@ -83,9 +83,10 @@ Elm.Native.Touch = function(elm) {
83 listen("touchcancel", end);
83 listen("touchcancel", end);
84 listen("touchleave", end);
84 listen("touchleave", end);
85
85
86+ var mouseID = -1;
86 function move(e) {
87 function move(e) {
87 for (var i = root.value.length; i--; ) {
88 for (var i = root.value.length; i--; ) {
88− if (root.value[i].id === 0) {
89+ if (root.value[i].id === mouseID) {
89 root.value[i].x = e.pageX;
90 root.value[i].x = e.pageX;
90 root.value[i].y = e.pageY;
91 root.value[i].y = e.pageY;
91 elm.notify(root.id, root.value);
92 elm.notify(root.id, root.value);
@@ -95,18 +96,19 @@ Elm.Native.Touch = function(elm) {
95 }
96 }
96 node.addEventListener("mousedown", function(e) {
97 node.addEventListener("mousedown", function(e) {
97 node.addEventListener("mousemove", move);
98 node.addEventListener("mousemove", move);
98− e.identifier = 0;
99+ e.identifier = mouseID;
99 root.value.push(touch(e));
100 root.value.push(touch(e));
100 start(e);
101 start(e);
101 elm.notify(root.id, root.value);
102 elm.notify(root.id, root.value);
102 });
103 });
103 node.addEventListener("mouseup", function(e) {
104 node.addEventListener("mouseup", function(e) {
104 node.removeEventListener("mousemove", move);
105 node.removeEventListener("mousemove", move);
105− e.identifier = 0;
106+ e.identifier = mouseID;
106 end(e);
107 end(e);
107 for (var i = root.value.length; i--; ) {
108 for (var i = root.value.length; i--; ) {
108− if (root.value[i].id === 0) {
109+ if (root.value[i].id === mouseID) {
109 root.value.splice(i, 1);
110 root.value.splice(i, 1);
111+ --mouseID;
110 break;
112 break;
111 }
113 }
112 }
114 }
@@ -114,6 +116,10 @@ Elm.Native.Touch = function(elm) {
114 });
116 });
115 node.addEventListener("blur", function() {
117 node.addEventListener("blur", function() {
116 node.removeEventListener("mousemove", move);
118 node.removeEventListener("mousemove", move);
119+ if (root.values.length > 0) {
120+ elm.notify(root.id, []);
121+ --mouseID;
122+ }
117 dict.clear();
123 dict.clear();
118 });
124 });
119
125