def _register_atspi_focus_listeners(self, register): if "Atspi" not in globals(): return if self._focus_listeners_registered != register: if register: self.atspi_connect("_listener_focus", "focus", self._on_atspi_global_focus) self.atspi_connect("_listener_object_focus", "object:state-changed:focused", self._on_atspi_object_focus) # private asynchronous events for name in self._async_event_names: handler = "_on_" + name.replace("-", "_") EventSource.connect(self, name, getattr(self, handler)) else: self.atspi_disconnect("_listener_focus", "focus") self.atspi_disconnect("_listener_object_focus", "object:state-changed:focused") for name in self._async_event_names: handler = "_on_" + name.replace("-", "_") EventSource.disconnect(self, name, getattr(self, handler)) self._focus_listeners_registered = register
def _begin_mapping(self, event_source, button, click_type): # remap button if button != self.PRIMARY_BUTTON and \ click_type == self.CLICK_TYPE_SINGLE: # "grab" the pointer so we can detect button-release # anywhere on screen. Works only with XInput as InputEventSource. self._grab_event_source = event_source event_source.grab_xi_pointer(True) EventSource.connect(event_source, "button-release", self._on_xi_button_release) self._osk_cm.map_pointer_button(button) self._osk_cm.button = button self._osk_cm.click_type = click_type else: self._set_next_mouse_click(button, click_type)
def connect(self, event_name, callback): EventSource.connect(self, event_name, callback) self._update_listeners()
def connect(self, event_name, callback): EventSource.connect(self, event_name, callback) self.update_sensor_sources()
def connect(self, event_name, callback): EventSource.connect(self, event_name, callback) self._update_registered_events()