diff options
Diffstat (limited to 'app/src/main/java/invalid')
| -rw-r--r-- | app/src/main/java/invalid/lena/scrcpy/Controller.java | 5 |
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 + ")"; |