Skip to content

Commit 8d4c6c6

Browse files
committed
Node input, fix nullpointer in some cases of pointer up
1 parent 1b95116 commit 8d4c6c6

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

graphics-by-opengl-j2se/src/main/java/com/nucleus/scene/J2SENodeInputListener.java

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,21 @@ public class J2SENodeInputListener implements MMIPointerInput {
3030
public class ActiveEvent {
3131
private MMIPointer event;
3232
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+
3348
}
3449

3550
/**
@@ -153,12 +168,11 @@ protected void handleActivePointers(Node node, UIElementInput listener, MMIPoint
153168
if (activeEvents[finger] == null) {
154169
activeEvents[finger] = new ActiveEvent();
155170
}
156-
activeEvents[finger].event = event;
157-
activeEvents[finger].activeNode = node;
171+
activeEvents[finger].set(node, event);
158172
break;
159173
case INACTIVE:
160174
MMIPointer firstEvent = activeEvents[finger].event;
161-
if (activeEvents[finger].activeNode.getId().equals(node.getId())) {
175+
if (listener != null && activeEvents[finger].isSameNode(node)) {
162176
EventConfiguration config = listener.getConfiguration();
163177
int delta = (int) (event.getPointerData().getCurrent().timeStamp
164178
- firstEvent.getPointerData().getFirst().timeStamp);
@@ -178,6 +192,7 @@ protected void handleActivePointers(Node node, UIElementInput listener, MMIPoint
178192
SimpleLogger.d(getClass(), "Pointer released on different Node: "
179193
+ activeEvents[finger].activeNode.getId() + " -> " + node.getId());
180194
}
195+
activeEvents[finger].clear();
181196
break;
182197
default:
183198
// Do nothing

0 commit comments

Comments
 (0)