Skip to content

Commit 2473dde

Browse files
committed
Patch SDLSurface to allow touch to be intercepted by python application
1 parent be3de2e commit 2473dde

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
--- a/src/main/java/org/libsdl/app/SDLSurface.java
2+
+++ b/src/main/java/org/libsdl/app/SDLSurface.java
3+
@@ -193,9 +193,22 @@
4+
return SDLActivity.handleKeyEvent(v, keyCode, event, null);
5+
}
6+
7+
+ public interface OnInterceptTouchListener {
8+
+ boolean onTouch(MotionEvent ev);
9+
+ }
10+
+
11+
+ private OnInterceptTouchListener mOnInterceptTouchListener = null;
12+
+
13+
+ public void setInterceptTouchListener(OnInterceptTouchListener listener) {
14+
+ this.mOnInterceptTouchListener = listener;
15+
+ }
16+
+
17+
// Touch events
18+
@Override
19+
public boolean onTouch(View v, MotionEvent event) {
20+
+ if (mOnInterceptTouchListener != null)
21+
+ if (mOnInterceptTouchListener.onTouch(event))
22+
+ return false;
23+
/* Ref: http://developer.android.com/training/gestures/multi.html */
24+
int touchDevId = event.getDeviceId();
25+
final int pointerCount = event.getPointerCount();
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
--- a/src/main/java/org/libsdl/app/SDLSurface.java
2+
+++ b/src/main/java/org/libsdl/app/SDLSurface.java
3+
@@ -232,9 +232,23 @@
4+
}
5+
}
6+
7+
+ public interface OnInterceptTouchListener {
8+
+ boolean onTouch(MotionEvent ev);
9+
+ }
10+
+
11+
+ private OnInterceptTouchListener mOnInterceptTouchListener = null;
12+
+
13+
+ public void setInterceptTouchListener(OnInterceptTouchListener listener) {
14+
+ this.mOnInterceptTouchListener = listener;
15+
+ }
16+
+
17+
// Touch events
18+
@Override
19+
public boolean onTouch(View v, MotionEvent event) {
20+
+ // Allow touch to be intercepted by python application
21+
+ if (mOnInterceptTouchListener != null)
22+
+ if (mOnInterceptTouchListener.onTouch(event))
23+
+ return false;
24+
/* Ref: http://developer.android.com/training/gestures/multi.html */
25+
int touchDevId = event.getDeviceId();
26+
final int pointerCount = event.getPointerCount();

0 commit comments

Comments
 (0)