aboutsummaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/invalid/lena/scrcpy/Controller.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/app/src/main/java/invalid/lena/scrcpy/Controller.java b/app/src/main/java/invalid/lena/scrcpy/Controller.java
index 88b9442..188ac34 100644
--- a/app/src/main/java/invalid/lena/scrcpy/Controller.java
+++ b/app/src/main/java/invalid/lena/scrcpy/Controller.java
@@ -135,8 +135,11 @@ public final class Controller implements ControlStream.InboundSink {
int y = (int) ev.getY(index);
int tx = (int) ((long) x * tw / vw);
int ty = (int) ((long) y * th / vh);
+ // getPressure is calibrated around 1.0 but may exceed it on some
+ // digitizers; clamp instead of masking so hard presses don't wrap
+ // around to a light touch.
int pressure = (action == MotionEvent.ACTION_UP) ? 0
- : (int)(ev.getPressure(index) * 0xffff) & 0xffff;
+ : Math.min((int)(ev.getPressure(index) * 0xffff), 0xffff);
sender.accept(ControlMessages.touch(action, pointerId, tx, ty, tw, th,
pressure, /* actionButton */ 0, /* buttons */ 0));
lastEvent = "touch a=" + action + " (" + tx + "," + ty + ")";