retry grabbing
This commit is contained in:
parent
c50b64b2f1
commit
ca5ce66f31
@ -36,10 +36,12 @@ class inputDriver():
|
||||
return
|
||||
def grabAllDevices(self):
|
||||
if not self._initialized:
|
||||
return
|
||||
return True
|
||||
return True
|
||||
def ungrabAllDevices(self):
|
||||
if not self._initialized:
|
||||
return
|
||||
return True
|
||||
return True
|
||||
def hasIDevices(self):
|
||||
if not self._initialized:
|
||||
return False
|
||||
|
@ -57,11 +57,13 @@ class inputManager():
|
||||
if not self.noKeyPressed():
|
||||
return
|
||||
if not self.env['runtime']['settingsManager'].getSettingAsBool('keyboard', 'grabDevices'):
|
||||
self.executeDeviceGrab = False
|
||||
return
|
||||
if self.env['runtime']['screenManager'].getCurrScreenIgnored():
|
||||
self.ungrabAllDevices()
|
||||
if self.ungrabAllDevices():
|
||||
self.executeDeviceGrab = False
|
||||
else:
|
||||
self.grabAllDevices()
|
||||
if self.grabAllDevices():
|
||||
self.executeDeviceGrab = False
|
||||
def sendKeys(self, keyMacro):
|
||||
for e in keyMacro:
|
||||
@ -143,15 +145,17 @@ class inputManager():
|
||||
def grabAllDevices(self):
|
||||
if self.env['runtime']['settingsManager'].getSettingAsBool('keyboard', 'grabDevices'):
|
||||
try:
|
||||
self.env['runtime']['inputDriver'].grabAllDevices()
|
||||
return self.env['runtime']['inputDriver'].grabAllDevices()
|
||||
except Exception as e:
|
||||
pass
|
||||
return False
|
||||
return True
|
||||
def ungrabAllDevices(self):
|
||||
if self.env['runtime']['settingsManager'].getSettingAsBool('keyboard', 'grabDevices'):
|
||||
try:
|
||||
self.env['runtime']['inputDriver'].ungrabAllDevices()
|
||||
return self.env['runtime']['inputDriver'].ungrabAllDevices()
|
||||
except Exception as e:
|
||||
pass
|
||||
return False
|
||||
return True
|
||||
def handlePlugInputDevice(self, eventData):
|
||||
for deviceEntry in eventData:
|
||||
self.env['runtime']['inputManager'].updateInputDevices(deviceEntry['device'])
|
||||
|
@ -48,7 +48,6 @@ class screenManager():
|
||||
self.env['runtime']['screenDriver'].getSessionInformation()
|
||||
except:
|
||||
pass
|
||||
|
||||
def shutdown(self):
|
||||
self.env['runtime']['settingsManager'].shutdownDriver('screenDriver')
|
||||
def isCurrScreenIgnoredChanged(self):
|
||||
@ -60,16 +59,13 @@ class screenManager():
|
||||
if self.isCurrScreenIgnoredChanged():
|
||||
self.env['runtime']['inputManager'].setExecuteDeviceGrab()
|
||||
self.env['runtime']['inputManager'].handleDeviceGrab()
|
||||
|
||||
if self.isScreenChange():
|
||||
self.changeBrailleScreen()
|
||||
|
||||
if not self.isSuspendingScreen(self.env['screen']['newTTY']):
|
||||
self.update(eventData, 'onScreenChange')
|
||||
self.env['screen']['lastScreenUpdate'] = time.time()
|
||||
else:
|
||||
self.env['runtime']['outputManager'].interruptOutput()
|
||||
|
||||
def handleScreenUpdate(self, eventData):
|
||||
self.env['screen']['oldApplication'] = self.env['screen']['newApplication']
|
||||
self.updateScreenIgnored()
|
||||
|
@ -281,16 +281,18 @@ class driver(inputDriver):
|
||||
self.iDevices[i].set_led(led , 1)
|
||||
def grabAllDevices(self):
|
||||
if not self._initialized:
|
||||
return
|
||||
return True
|
||||
ok = True
|
||||
for fd in self.iDevices:
|
||||
self.grabDevice(fd)
|
||||
|
||||
ok = ok and self.grabDevice(fd)
|
||||
return ok
|
||||
def ungrabAllDevices(self):
|
||||
if not self._initialized:
|
||||
return
|
||||
return True
|
||||
ok = True
|
||||
for fd in self.iDevices:
|
||||
self.ungrabDevice(fd)
|
||||
|
||||
ok = ok and self.ungrabDevice(fd)
|
||||
return ok
|
||||
def createUInputDev(self, fd):
|
||||
if not self.env['runtime']['settingsManager'].getSettingAsBool('keyboard', 'grabDevices'):
|
||||
self.uDevices[fd] = None
|
||||
@ -324,7 +326,7 @@ class driver(inputDriver):
|
||||
self.createUInputDev(newDevice.fd)
|
||||
def grabDevice(self, fd):
|
||||
if not self.env['runtime']['settingsManager'].getSettingAsBool('keyboard', 'grabDevices'):
|
||||
return
|
||||
return True
|
||||
try:
|
||||
self.iDevices[fd].grab()
|
||||
self.gDevices[fd] = True
|
||||
@ -333,15 +335,20 @@ class driver(inputDriver):
|
||||
self.gDevices[fd] = True
|
||||
except Exception as e:
|
||||
self.env['runtime']['debug'].writeDebugOut('InputDriver evdev: grabing not possible: ' + str(e),debug.debugLevel.ERROR)
|
||||
return False
|
||||
return True
|
||||
def ungrabDevice(self,fd):
|
||||
if not self.env['runtime']['settingsManager'].getSettingAsBool('keyboard', 'grabDevices'):
|
||||
return
|
||||
return True
|
||||
try:
|
||||
self.gDevices[fd] = False
|
||||
self.iDevices[fd].ungrab()
|
||||
self.gDevices[fd] = False
|
||||
self.env['runtime']['debug'].writeDebugOut('InputDriver evdev: ungrab device ('+ str(self.iDevices[fd].name) + ')',debug.debugLevel.INFO)
|
||||
except:
|
||||
pass
|
||||
except IOError:
|
||||
self.gDevices[fd] = False
|
||||
except Exception as e:
|
||||
return False
|
||||
return True
|
||||
def removeDevice(self,fd):
|
||||
self.env['runtime']['debug'].writeDebugOut('InputDriver evdev: device removed: ' + str(fd) + ' ' +str(self.iDevices[fd]),debug.debugLevel.INFO)
|
||||
self.clearEventBuffer()
|
||||
|
Loading…
Reference in New Issue
Block a user