浏览代码

android: enable resume key events

rdb 7 年之前
父节点
当前提交
c15c05f642
共有 1 个文件被更改,包括 10 次插入4 次删除
  1. 10 4
      panda/src/androiddisplay/androidGraphicsWindow.cxx

+ 10 - 4
panda/src/androiddisplay/androidGraphicsWindow.cxx

@@ -396,8 +396,10 @@ create_surface() {
  */
  */
 void AndroidGraphicsWindow::
 void AndroidGraphicsWindow::
 handle_command(struct android_app *app, int32_t command) {
 handle_command(struct android_app *app, int32_t command) {
-  AndroidGraphicsWindow* window = (AndroidGraphicsWindow*) app->userData;
-  window->ns_handle_command(command);
+  AndroidGraphicsWindow *window = (AndroidGraphicsWindow *)app->userData;
+  if (window != nullptr) {
+    window->ns_handle_command(command);
+  }
 }
 }
 
 
 /**
 /**
@@ -517,11 +519,15 @@ handle_key_event(const AInputEvent *event) {
   // Is it an up or down event?
   // Is it an up or down event?
   int32_t action = AKeyEvent_getAction(event);
   int32_t action = AKeyEvent_getAction(event);
   if (action == AKEY_EVENT_ACTION_DOWN) {
   if (action == AKEY_EVENT_ACTION_DOWN) {
-    _input_devices[0].button_down(button);
+    if (AKeyEvent_getRepeatCount(event) > 0) {
+      _input_devices[0].button_resume_down(button);
+    } else {
+      _input_devices[0].button_down(button);
+    }
   } else if (action == AKEY_EVENT_ACTION_UP) {
   } else if (action == AKEY_EVENT_ACTION_UP) {
     _input_devices[0].button_up(button);
     _input_devices[0].button_up(button);
   }
   }
-  // TODO getRepeatCount, ACTION_MULTIPLE
+  // TODO AKEY_EVENT_ACTION_MULTIPLE
 
 
   return 1;
   return 1;
 }
 }