From 254d5f54ea7b4b7aff9165e218aeaa489752d59c Mon Sep 17 00:00:00 2001 From: Emanuele Date: Wed, 3 Feb 2021 15:26:29 +0100 Subject: [PATCH] Proper handling of reactor thread --- src/rmview/workers.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/rmview/workers.py b/src/rmview/workers.py index e214f0b..11fcfeb 100644 --- a/src/rmview/workers.py +++ b/src/rmview/workers.py @@ -105,7 +105,7 @@ class FrameBufferWorker(QRunnable): self._stop = True log.info("Stopping framebuffer thread...") try: - self.vncClient.disconnect() + reactor.callFromThread(self.vncClient.disconnect) except Exception: reactor.callFromThread(reactor.stop) try: @@ -160,8 +160,12 @@ class FrameBufferWorker(QRunnable): def keyEvent(self, key): if self.ignoreEvents: return - reactor.callFromThread(self.factory.instance.keyEvent, key) - reactor.callFromThread(self.factory.instance.keyEvent, key, 0) + reactor.callFromThread(self.emulatePressRelease, key) + + def emulatePressRelease(self, key): + self.factory.instance.keyEvent(key) + # time.sleep(.1) + self.factory.instance.keyEvent(key, 0) class PWSignals(QObject):