From 4348f12194b5e44e710e61786b452ebe4b9eb850 Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Fri, 15 Nov 2024 18:41:04 +0100 Subject: [PATCH] Improve mismatching event size warning Include both the event size and the current size in the warning message. PR #5455 --- .../java/com/genymobile/scrcpy/control/Controller.java | 9 +++++++-- .../com/genymobile/scrcpy/control/PositionMapper.java | 4 ++++ .../src/main/java/com/genymobile/scrcpy/device/Size.java | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/com/genymobile/scrcpy/control/Controller.java b/server/src/main/java/com/genymobile/scrcpy/control/Controller.java index 573e8f52..cafa11bd 100644 --- a/server/src/main/java/com/genymobile/scrcpy/control/Controller.java +++ b/server/src/main/java/com/genymobile/scrcpy/control/Controller.java @@ -8,6 +8,7 @@ import com.genymobile.scrcpy.device.Device; import com.genymobile.scrcpy.device.DeviceApp; import com.genymobile.scrcpy.device.Point; import com.genymobile.scrcpy.device.Position; +import com.genymobile.scrcpy.device.Size; import com.genymobile.scrcpy.util.Ln; import com.genymobile.scrcpy.util.LogUtils; import com.genymobile.scrcpy.video.SurfaceCapture; @@ -359,7 +360,9 @@ public class Controller implements AsyncProcessor, VirtualDisplayListener { Point point = displayData.positionMapper.map(position); if (point == null) { - Ln.w("Ignore touch event, it was generated for a different device size"); + Size eventSize = position.getScreenSize(); + Size currentSize = displayData.positionMapper.getVideoSize(); + Ln.w("Ignore touch event generated for size " + eventSize + " (current size is " + currentSize + ")"); return false; } @@ -473,7 +476,9 @@ public class Controller implements AsyncProcessor, VirtualDisplayListener { Point point = displayData.positionMapper.map(position); if (point == null) { - Ln.w("Ignore scroll event, it was generated for a different device size"); + Size eventSize = position.getScreenSize(); + Size currentSize = displayData.positionMapper.getVideoSize(); + Ln.w("Ignore scroll event generated for size " + eventSize + " (current size is " + currentSize + ")"); return false; } diff --git a/server/src/main/java/com/genymobile/scrcpy/control/PositionMapper.java b/server/src/main/java/com/genymobile/scrcpy/control/PositionMapper.java index 4d3b8875..60109b51 100644 --- a/server/src/main/java/com/genymobile/scrcpy/control/PositionMapper.java +++ b/server/src/main/java/com/genymobile/scrcpy/control/PositionMapper.java @@ -27,6 +27,10 @@ public final class PositionMapper { return new PositionMapper(videoSize, transform); } + public Size getVideoSize() { + return videoSize; + } + public Point map(Position position) { Size clientVideoSize = position.getScreenSize(); if (!videoSize.equals(clientVideoSize)) { diff --git a/server/src/main/java/com/genymobile/scrcpy/device/Size.java b/server/src/main/java/com/genymobile/scrcpy/device/Size.java index 3baa1bdd..6500b74e 100644 --- a/server/src/main/java/com/genymobile/scrcpy/device/Size.java +++ b/server/src/main/java/com/genymobile/scrcpy/device/Size.java @@ -103,6 +103,6 @@ public final class Size { @Override public String toString() { - return "Size{" + width + 'x' + height + '}'; + return width + "x" + height; } }