Support trackpad 'click'
Bug: 331179939
Test: click the trackpad
Change-Id: I2b3572d5d02de5a0c5aaee9da9fdaf9376532462
diff --git a/java/framework/src/android/system/virtualmachine/VirtualMachine.java b/java/framework/src/android/system/virtualmachine/VirtualMachine.java
index d54bd44..d1570c3 100644
--- a/java/framework/src/android/system/virtualmachine/VirtualMachine.java
+++ b/java/framework/src/android/system/virtualmachine/VirtualMachine.java
@@ -1142,9 +1142,29 @@
int x = (int) event.getRawX();
int y = (int) event.getRawY();
+ if (event.getAction() == MotionEvent.ACTION_BUTTON_PRESS
+ || event.getAction() == MotionEvent.ACTION_BUTTON_RELEASE) {
+ short BTN_LEFT = 0x110;
+ short keyCode;
+ switch (event.getActionButton()) {
+ case MotionEvent.BUTTON_PRIMARY:
+ keyCode = BTN_LEFT;
+ break;
+ default:
+ Log.d(TAG, event.toString());
+ return false;
+ }
+ return writeEventsToSock(
+ mMouseSock,
+ Arrays.asList(
+ new InputEvent(
+ EV_KEY,
+ keyCode,
+ event.getAction() == MotionEvent.ACTION_BUTTON_PRESS ? 1 : 0),
+ new InputEvent(EV_SYN, SYN_REPORT, 0)));
+ }
boolean down = event.getAction() != MotionEvent.ACTION_UP;
-
- // TODO(b/347253952): support multi-touch and button click
+ // TODO(b/347253952): support multi-touch
return writeEventsToSock(
mTrackpadSock,
Arrays.asList(