diff --git a/server/src/main/java/com/genymobile/scrcpy/CleanUp.java b/server/src/main/java/com/genymobile/scrcpy/CleanUp.java index 352f7c6b..911cb5ba 100644 --- a/server/src/main/java/com/genymobile/scrcpy/CleanUp.java +++ b/server/src/main/java/com/genymobile/scrcpy/CleanUp.java @@ -207,13 +207,15 @@ public final class CleanUp { } } - if (displayId != Device.DISPLAY_ID_NONE && Device.isScreenOn(displayId)) { + // Change the display power of the main display when mirroring a virtual display + int targetDisplayId = displayId != Device.DISPLAY_ID_NONE ? displayId : 0; + if (Device.isScreenOn(targetDisplayId)) { if (powerOffScreen) { Ln.i("Power off screen"); - Device.powerOffScreen(displayId); + Device.powerOffScreen(targetDisplayId); } else if (restoreDisplayPower) { Ln.i("Restoring display power"); - Device.setDisplayPower(displayId, true); + Device.setDisplayPower(targetDisplayId, true); } } 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 f0e4c037..fb9eba10 100644 --- a/server/src/main/java/com/genymobile/scrcpy/control/Controller.java +++ b/server/src/main/java/com/genymobile/scrcpy/control/Controller.java @@ -281,7 +281,7 @@ public class Controller implements AsyncProcessor, VirtualDisplayListener { setClipboard(msg.getText(), msg.getPaste(), msg.getSequence()); break; case ControlMessage.TYPE_SET_DISPLAY_POWER: - if (supportsInputEvents && displayId != Device.DISPLAY_ID_NONE) { + if (supportsInputEvents) { setDisplayPower(msg.getOn()); } break; @@ -691,7 +691,9 @@ public class Controller implements AsyncProcessor, VirtualDisplayListener { } private void setDisplayPower(boolean on) { - boolean setDisplayPowerOk = Device.setDisplayPower(displayId, on); + // Change the display power of the main display when mirroring a virtual display + int targetDisplayId = displayId != Device.DISPLAY_ID_NONE ? displayId : 0; + boolean setDisplayPowerOk = Device.setDisplayPower(targetDisplayId, on); if (setDisplayPowerOk) { keepDisplayPowerOff = !on; Ln.i("Device display turned " + (on ? "on" : "off"));