Skip to content

Commit 1b5d9f1

Browse files
committed
Stop sending keys and return control to the local machine when Windows screen is locked
1 parent bcdd18b commit 1b5d9f1

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

addon/globalPlugins/remoteClient/__init__.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
from winAPI.secureDesktop import post_secureDesktopStateChange
1818
except:
1919
post_secureDesktopStateChange = None
20+
try:
21+
from utils import security
22+
except:
23+
pass
2024
import buildVersion
2125
import shlobj
2226
import speech
@@ -828,6 +832,10 @@ def script_sendKeys(self, gesture):
828832
self.sending_keys = not self.sending_keys
829833
self.set_receiving_braille(self.sending_keys)
830834
if self.sending_keys:
835+
if buildVersion.version_year==2022 and buildVersion.version_major==4:
836+
security.postSessionLockStateChanged.register(self.onSessionLockStateChange)
837+
elif buildVersion.version_year>=2023:
838+
security.post_sessionLockStateChanged.register(self.onSessionLockStateChange)
831839
self.hostPendingModifiers = gesture.modifiers
832840
# Translators: Presented when sending keyboard keys from the controlling computer to the controlled computer.
833841
ui.message(_("Controlling remote machine."))
@@ -841,6 +849,10 @@ def script_sendKeys(self, gesture):
841849
for k in self.key_modifiers:
842850
self.master_transport.send(type="key", vk_code=k[0], extended=k[1], pressed=False)
843851
self.key_modifiers = set()
852+
if buildVersion.version_year==2022 and buildVersion.version_major==4:
853+
security.postSessionLockStateChanged.unregister(self.onSessionLockStateChange)
854+
elif buildVersion.version_year>=2023:
855+
security.post_sessionLockStateChanged.unregister(self.onSessionLockStateChange)
844856
# Translators: Presented when keyboard control is back to the controlling computer.
845857
ui.message(_("Controlling local machine."))
846858
if buildVersion.version_year >= 2025:
@@ -869,6 +881,10 @@ def handleRawKeys(self, vkCode, scanCode, extended, pressed):
869881
self.master_transport.send(type="key", vk_code=vkCode, scan_code=scanCode, extended=extended, pressed=pressed)
870882
return False
871883

884+
def onSessionLockStateChange(self, isNowLocked):
885+
if isNowLocked:
886+
self.script_sendKeys(None)
887+
872888
@script(
873889
# Translators: gesture description for the toggle remote mute script
874890
description=_("""Mute or unmute the speech coming from the remote computer"""),

0 commit comments

Comments
 (0)