def main(): from xpra.x11.gtk2 import gdk_display_source assert gdk_display_source from xpra.x11.gtk2.gdk_bindings import init_x11_filter, add_catchall_receiver #@UnresolvedImport init_x11_filter() root_window = gtk.gdk.get_default_root_window() root_window.set_events(root_window.get_events() | gtk.gdk.SUBSTRUCTURE_MASK) r = receiver() add_catchall_receiver("xpra-create-event", r) X11WindowBindings().substructureRedirect(root_window.xid) gtk.main()
def __init__(self, props): gobject.GObject.__init__(self) self._props = props self._root = gtk.gdk.get_default_root_window() self._saved_event_mask = self._root.get_events() self._root.set_events(self._saved_event_mask | gtk.gdk.PROPERTY_CHANGE_MASK) self._own_x11_filter = init_x11_filter() add_event_receiver(self._root, self)
def init_x11_filter(self): if self.x11_filter: return try: from xpra.x11.gtk2.gdk_bindings import init_x11_filter #@UnresolvedImport self.x11_filter = init_x11_filter() log("x11_filter=%s", self.x11_filter) except: self.x11_filter = None
def x11_init(self): X11ServerBase.x11_init(self) assert init_x11_filter() is True display = gtk.gdk.display_get_default() screens = display.get_n_screens() for n in range(screens): screen = display.get_screen(n) root = screen.get_root_window() add_event_receiver(root, self) add_catchall_receiver("xpra-motion-event", self) add_catchall_receiver("xpra-xkb-event", self) X11Keyboard.selectBellNotification(True)