do not deadlock

This commit is contained in:
Chrys
2019-10-17 23:55:39 +02:00
parent a4b4560a6b
commit a3acf7d9cc
9 changed files with 352 additions and 7 deletions

View File

@ -59,13 +59,23 @@ class inputManager():
if not self.env['runtime']['settingsManager'].getSettingAsBool('keyboard', 'grabDevices'):
self.executeDeviceGrab = False
return
print(self.env['runtime']['screenManager'].getCurrScreenIgnored())
if self.env['runtime']['screenManager'].getCurrScreenIgnored():
if self.ungrabAllDevices():
self.executeDeviceGrab = False
while not self.ungrabAllDevices():
time.sleep(0.1)
self.env['runtime']['debug'].writeDebugOut("retry ungrabAllDevices " ,debug.debugLevel.WARNING)
print('try ungrabbing')
self.env['runtime']['debug'].writeDebugOut("All devices ungrabbed" ,debug.debugLevel.INFO)
print('ungrabbed')
else:
while not self.grabAllDevices():
time.sleep(0.1)
self.executeDeviceGrab = False
time.sleep(0.2)
self.env['runtime']['debug'].writeDebugOut("retry grabAllDevices" ,debug.debugLevel.WARNING)
print('try grabbing')
print('grabbed')
self.env['runtime']['debug'].writeDebugOut("All devices grabbed" ,debug.debugLevel.INFO)
self.executeDeviceGrab = False
def sendKeys(self, keyMacro):
for e in keyMacro:
key = ''
@ -316,7 +326,7 @@ class inputManager():
shortcutRepeat = int(key)
except:
if not self.isValidKey(key.upper()):
self.env['runtime']['debug'].writeDebugOut("invalid key : "+ key.upper() + ' command:' +commandName ,debug.debugLevel.WARNING)
self.env['runtime']['debug'].writeDebugOut("invalid key : "+ key.upper() + ' command:' +commandName ,debug.debugLevel.WARNING)
invalid = True
break
shortcutKeys.append(key.upper())

View File

@ -158,6 +158,9 @@ class remoteManager():
self.env['runtime']['settingsManager'].resetSettingArgDict()
def setSettings(self, settingsArgs):
self.env['runtime']['settingsManager'].parseSettingArgs(settingsArgs)
self.env['runtime']['screenManager'].getCurrScreen()
self.env['runtime']['screenManager'].getSessionInformation()
self.env['runtime']['screenManager'].updateScreenIgnored()
def handleRemoteIncomming(self, eventData):
if not eventData:
return