am 175fb816: am 8d04b131: Merge "ndk: Fix potential event handling issue in android_native_app_glue"
* commit '175fb816d20560958473cdc1bbe0fc5034e6b15d':
ndk: Fix potential event handling issue in android_native_app_glue
diff --git a/ndk/sources/android/native_app_glue/android_native_app_glue.c b/ndk/sources/android/native_app_glue/android_native_app_glue.c
index 82fc030..0c526fa 100644
--- a/ndk/sources/android/native_app_glue/android_native_app_glue.c
+++ b/ndk/sources/android/native_app_glue/android_native_app_glue.c
@@ -186,15 +186,18 @@
static void process_input(struct android_app* app, struct android_poll_source* source) {
AInputEvent* event = NULL;
- if (AInputQueue_getEvent(app->inputQueue, &event) >= 0) {
+ int processed = 0;
+ while (AInputQueue_getEvent(app->inputQueue, &event) >= 0) {
LOGV("New input event: type=%d\n", AInputEvent_getType(event));
if (AInputQueue_preDispatchEvent(app->inputQueue, event)) {
- return;
+ continue;
}
int32_t handled = 0;
if (app->onInputEvent != NULL) handled = app->onInputEvent(app, event);
AInputQueue_finishEvent(app->inputQueue, event, handled);
- } else {
+ processed = 1;
+ }
+ if (processed == 0) {
LOGE("Failure reading next input event: %s\n", strerror(errno));
}
}