From 28f29154cb183252632dac1e09ea86f858a93fa1 Mon Sep 17 00:00:00 2001 From: Chrys Date: Fri, 18 Oct 2019 00:58:47 +0200 Subject: [PATCH] fix grab ungrab while input --- play zone/xterm.conf | 2 +- src/fenrirscreenreader/core/fenrirManager.py | 7 ++++--- src/fenrirscreenreader/core/inputManager.py | 4 +--- src/fenrirscreenreader/core/remoteManager.py | 2 ++ 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/play zone/xterm.conf b/play zone/xterm.conf index ec0580fe..8f950a1f 100644 --- a/play zone/xterm.conf +++ b/play zone/xterm.conf @@ -45,7 +45,7 @@ fenrirMaxRate=890 [braille] enabled=True -driver=brlttyDriver +driver=dummyDriver #layout=en # to what should the flush timeout relate to # word = flush after (number of words to display) * seconds diff --git a/src/fenrirscreenreader/core/fenrirManager.py b/src/fenrirscreenreader/core/fenrirManager.py index df67921a..99e5e188 100644 --- a/src/fenrirscreenreader/core/fenrirManager.py +++ b/src/fenrirscreenreader/core/fenrirManager.py @@ -83,6 +83,7 @@ class fenrirManager(): else: self.environment['runtime']['inputManager'].writeEventBuffer() if self.environment['runtime']['inputManager'].noKeyPressed(): + self.environment['runtime']['inputManager'].handleDeviceGrab() self.modifierInput = False self.singleKeyCommand = False if self.environment['input']['keyForeward'] > 0: @@ -127,7 +128,7 @@ class fenrirManager(): self.environment['runtime']['commandManager'].executeSwitchTrigger('onSwitchApplicationProfile', \ self.environment['runtime']['applicationManager'].getPrevApplication(), \ self.environment['runtime']['applicationManager'].getCurrentApplication()) - ''' + ''' if self.environment['runtime']['vmenuManager'].getActive(): return @@ -166,7 +167,7 @@ class fenrirManager(): #self.environment['runtime']['outputManager'].brailleText(flush=False) - def detectShortcutCommand(self): + def detectShortcutCommand(self): if self.environment['input']['keyForeward'] > 0: return if self.environment['runtime']['inputManager'].isKeyPress(): @@ -177,7 +178,7 @@ class fenrirManager(): self.singleKeyCommand = len( self.environment['runtime']['inputManager'].getLastDeepestInput() ) == 1 # key is already released. we need the old one if not( self.singleKeyCommand and self.environment['runtime']['inputManager'].noKeyPressed()): - shortcut = self.environment['runtime']['inputManager'].getCurrShortcut() + shortcut = self.environment['runtime']['inputManager'].getCurrShortcut() self.command = self.environment['runtime']['inputManager'].getCommandForShortcut(shortcut) if not self.modifierInput: diff --git a/src/fenrirscreenreader/core/inputManager.py b/src/fenrirscreenreader/core/inputManager.py index e2b4cc90..d6a02d79 100644 --- a/src/fenrirscreenreader/core/inputManager.py +++ b/src/fenrirscreenreader/core/inputManager.py @@ -59,7 +59,6 @@ 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(): while not self.ungrabAllDevices(): time.sleep(0.2) @@ -140,7 +139,6 @@ class inputManager(): self.env['runtime']['debug'].writeDebugOut("currInput " + str(self.env['input']['currInput'] ) ,debug.debugLevel.INFO) if self.noKeyPressed(): self.env['input']['prevInput'] = [] - self.handleDeviceGrab() def handleLedStates(self, mEvent): try: @@ -171,7 +169,7 @@ class inputManager(): self.env['runtime']['inputManager'].updateInputDevices(deviceEntry['device']) def updateInputDevices(self, newDevice = None): try: - self.env['runtime']['inputDriver'].updateInputDevices(newDevice) + self.env['runtime']['inputDriver'].updateInputDevices(newDevice) except: pass self.setExecuteDeviceGrab() diff --git a/src/fenrirscreenreader/core/remoteManager.py b/src/fenrirscreenreader/core/remoteManager.py index 86e19c8c..a23327cc 100644 --- a/src/fenrirscreenreader/core/remoteManager.py +++ b/src/fenrirscreenreader/core/remoteManager.py @@ -159,6 +159,8 @@ class remoteManager(): def setSettings(self, settingsArgs): self.env['runtime']['settingsManager'].parseSettingArgs(settingsArgs) self.env['runtime']['screenManager'].updateScreenIgnored() + self.env['runtime']['inputManager'].setExecuteDeviceGrab() + self.env['runtime']['inputManager'].handleDeviceGrab() def handleRemoteIncomming(self, eventData): if not eventData: return