def script_close(self,gesture): # #5343: New consoles in Windows 10 close with alt+f4 and take any processes attached with it (including NVDA). # Therefore detach from the console temporarily while sending the gesture. winConsoleHandler.disconnectConsole() gesture.send() def reconnect(): if api.getFocusObject()==self: winConsoleHandler.connectConsole(self) self.startMonitoring() core.callLater(200,reconnect)
def event_becomeNavigatorObject(self): if winConsoleHandler.consoleObject is not self: if winConsoleHandler.consoleObject: winConsoleHandler.disconnectConsole() winConsoleHandler.connectConsole(self) if self == api.getFocusObject(): # The user is returning to the focus object with object navigation. # The focused console should always be monitored if possible. self.startMonitoring() super(WinConsole,self).event_becomeNavigatorObject()
def get_console_text(console): """Gets the text of a console. The caller is responsible for reconnecting the current console if needed.""" child = [child for child in console.children if child.role == controlTypes.ROLE_TERMINAL][0] if winConsoleHandler.consoleObject is not child: #We need to connect it if winConsoleHandler.consoleObject: winConsoleHandler.disconnectConsole() winConsoleHandler.connectConsole(child) console_text = get_text(child) if winConsoleHandler.consoleObject: winConsoleHandler.disconnectConsole() return console_text
def event_loseFocus(self): super(WinConsole, self).event_loseFocus() if winConsoleHandler.consoleObject is self: winConsoleHandler.disconnectConsole()
def event_gainFocus(self): if winConsoleHandler.consoleObject is not self: if winConsoleHandler.consoleObject: winConsoleHandler.disconnectConsole() winConsoleHandler.connectConsole(self) super(WinConsole, self).event_gainFocus()