def quitYesButtonClicked(self, widget): """Signal handler for the "clicked" signal for the quitYesButton GtkButton widget. The user has clicked the Yes button. Call the orca.shutdown() method to gracefully terminate Orca. Arguments: - widget: the component that generated the signal. """ orca.shutdown()
def onResponse(self, widget, response): """Signal handler for the responses emitted by the dialog.""" if response == Gtk.ResponseType.ACCEPT: orca.shutdown() return if response in [Gtk.ResponseType.CANCEL, Gtk.ResponseType.DELETE_EVENT]: self.hide() if settings.showMainWindow: orca.showMainWindowGUI()
def _processObjectEvent(self, event): """Handles all object events destined for scripts. Arguments: - e: an at-spi event. """ debug.printObjectEvent(debug.LEVEL_FINEST, event) eType = event.type if eType.startswith("object:children-changed:remove"): try: if event.source == self.registry.getDesktop(0): _scriptManager.reclaimScripts() if settings.debugMemoryUsage: orca.cleanupGarbage() if not event.source.childCount: orca.shutdown() return except (LookupError, RuntimeError): # If we got this error here, we'll get it again when we # attempt to get the state, catch it, and clean up. pass except: debug.printException(debug.LEVEL_WARNING) return # Clean up any flat review context so that Orca does not get # confused (see bgo#609633) # if ( eType.startswith("window:deactivate") and orca_state.activeScript and orca_state.activeScript.flatReviewContext and orca_state.activeScript.app == event.host_application ): orca_state.activeScript.drawOutline(-1, 0, 0, 0) orca_state.activeScript.flatReviewContext = None try: state = event.source.getState() except (LookupError, RuntimeError): debug.println(debug.LEVEL_WARNING, "Error while processing event: %s" % eType) if eType.startswith("window:deactivate"): orca.setLocusOfFocus(event, None) orca_state.activeWindow = None return except: debug.printException(debug.LEVEL_WARNING) return if state and state.contains(pyatspi.STATE_DEFUNCT): debug.println(debug.LEVEL_FINEST, "IGNORING DEFUNCT OBJECT") if eType.startswith("window:deactivate"): orca.setLocusOfFocus(event, None) orca_state.activeWindow = None return if state and state.contains(pyatspi.STATE_ICONIFIED): debug.println(debug.LEVEL_FINEST, "IGNORING ICONIFIED OBJECT") return if not debug.eventDebugFilter or debug.eventDebugFilter.match(eType) and not eType.startswith("mouse:"): debug.printDetails(debug.LEVEL_FINEST, " ", event.source) script = self._getScriptForEvent(event) debug.println(debug.LEVEL_FINEST, "Script for event: %s" % script.name) setNewActiveScript, reason = self._isActivatableEvent(event, script) if setNewActiveScript: app = event.host_application or event.source.getApplication() _scriptManager.setActiveScript(script, reason) script.processObjectEvent(event)