@@ -30,6 +30,21 @@ public class J2SENodeInputListener implements MMIPointerInput {
30
30
public class ActiveEvent {
31
31
private MMIPointer event ;
32
32
private Node activeNode ;
33
+
34
+ protected void set (Node node , MMIPointer event ) {
35
+ activeNode = node ;
36
+ this .event = event ;
37
+ }
38
+
39
+ protected void clear () {
40
+ event = null ;
41
+ activeNode = null ;
42
+ }
43
+
44
+ protected boolean isSameNode (Node node ) {
45
+ return activeNode != null ? activeNode .getId ().equals (node .getId ()) : false ;
46
+ }
47
+
33
48
}
34
49
35
50
/**
@@ -153,12 +168,11 @@ protected void handleActivePointers(Node node, UIElementInput listener, MMIPoint
153
168
if (activeEvents [finger ] == null ) {
154
169
activeEvents [finger ] = new ActiveEvent ();
155
170
}
156
- activeEvents [finger ].event = event ;
157
- activeEvents [finger ].activeNode = node ;
171
+ activeEvents [finger ].set (node , event );
158
172
break ;
159
173
case INACTIVE :
160
174
MMIPointer firstEvent = activeEvents [finger ].event ;
161
- if (activeEvents [finger ].activeNode . getId (). equals ( node . getId () )) {
175
+ if (listener != null && activeEvents [finger ].isSameNode ( node )) {
162
176
EventConfiguration config = listener .getConfiguration ();
163
177
int delta = (int ) (event .getPointerData ().getCurrent ().timeStamp
164
178
- firstEvent .getPointerData ().getFirst ().timeStamp );
@@ -178,6 +192,7 @@ protected void handleActivePointers(Node node, UIElementInput listener, MMIPoint
178
192
SimpleLogger .d (getClass (), "Pointer released on different Node: "
179
193
+ activeEvents [finger ].activeNode .getId () + " -> " + node .getId ());
180
194
}
195
+ activeEvents [finger ].clear ();
181
196
break ;
182
197
default :
183
198
// Do nothing
0 commit comments