mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2026-06-16 22:01:14 +00:00
Fix DS4 clickpad button on devices that expose the touchpad as a mouse
This commit is contained in:
@@ -1601,8 +1601,9 @@ public class ControllerHandler implements InputManager.InputDeviceListener, UsbD
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean tryHandleTouchpadEvent(MotionEvent event) {
|
public boolean tryHandleTouchpadEvent(MotionEvent event) {
|
||||||
// Bail if this is not a touchpad event
|
// Bail if this is not a touchpad or mouse event
|
||||||
if (event.getSource() != InputDevice.SOURCE_TOUCHPAD) {
|
if (event.getSource() != InputDevice.SOURCE_TOUCHPAD &&
|
||||||
|
event.getSource() != InputDevice.SOURCE_MOUSE) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1612,6 +1613,29 @@ public class ControllerHandler implements InputManager.InputDeviceListener, UsbD
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// When we're working with a mouse source instead of a touchpad, we're quite limited in
|
||||||
|
// what useful input we can provide via the controller API. The ABS_X/ABS_Y values are
|
||||||
|
// screen coordinates rather than touchpad coordinates. For now, we will just support
|
||||||
|
// the clickpad button and nothing else.
|
||||||
|
if (event.getSource() == InputDevice.SOURCE_MOUSE) {
|
||||||
|
// Unlike the touchpad where down and up refer to individual touches on the touchpad,
|
||||||
|
// down and up on a mouse indicates the state of the left mouse button.
|
||||||
|
switch (event.getActionMasked()) {
|
||||||
|
case MotionEvent.ACTION_DOWN:
|
||||||
|
context.inputMap |= ControllerPacket.TOUCHPAD_FLAG;
|
||||||
|
break;
|
||||||
|
case MotionEvent.ACTION_UP:
|
||||||
|
case MotionEvent.ACTION_CANCEL:
|
||||||
|
context.inputMap &= ~ControllerPacket.TOUCHPAD_FLAG;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
sendControllerInputPacket(context);
|
||||||
|
return !prefConfig.gamepadTouchpadAsMouse;
|
||||||
|
}
|
||||||
|
|
||||||
byte touchType;
|
byte touchType;
|
||||||
switch (event.getActionMasked()) {
|
switch (event.getActionMasked()) {
|
||||||
case MotionEvent.ACTION_DOWN:
|
case MotionEvent.ACTION_DOWN:
|
||||||
|
|||||||
Reference in New Issue
Block a user