コード例 #1
0
ファイル: test_lowlevel.py プロジェクト: rudresh2319/Xpra
    def test_event_routing(self):
        w1 = self.window()
        w2 = self.window()
        w2.reparent(w1, 0, 0)
        results = set()
        r1 = _EventRoutingReceiver(1, results)
        r2 = _EventRoutingReceiver(2, results)
        r3 = _EventRoutingReceiver(3, results)
        r4 = _EventRoutingReceiver(4, results)
        l.add_event_receiver(w1, r1)
        l.add_event_receiver(w1, r2)
        l.add_event_receiver(w2, r3)
        l.add_event_receiver(w2, r4)

        w1.set_events(gtk.gdk.SUBSTRUCTURE_MASK)
        w2.set_events(gtk.gdk.STRUCTURE_MASK)
        w2.show()
        while len(results) != 4:
            gtk.main()
        w2.hide()
        assert results == set([("child-map", 1), ("child-map", 2),
                                    ("map", 3), ("map", 4)])
        l.remove_event_receiver(w1, r2)
        l.remove_event_receiver(w2, r4)
        results.clear()
        w2.show()
        while len(results) != 2:
            gtk.main()
        assert results == set([("child-map", 1), ("map", 3)])
コード例 #2
0
ファイル: keys.py プロジェクト: yodamaster/partiwm
    def destroy(self):
        self.keymap.disconnect(self.keymap_id)
        self.keymap = None
        self.keymap_id = None

        trap.swallow(self.unbind_all)
        remove_event_receiver(self.window, self)
        self.window = None
コード例 #3
0
ファイル: keys.py プロジェクト: svn2github/Xpra
    def destroy(self):
        self.keymap.disconnect(self.keymap_id)
        self.keymap = None
        self.keymap_id = None

        trap.swallow(self.unbind_all)
        remove_event_receiver(self.window, self)
        self.window = None
コード例 #4
0
ファイル: composite.py プロジェクト: yodamaster/partiwm
 def destroy(self):
     if not self._already_composited:
         trap.swallow(xcomposite_unredirect_window, self._window)
     trap.swallow(xdamage_stop, self._window, self._damage_handle)
     self._damage_handle = None
     self._contents_handle = None
     self.invalidate_pixmap()
     remove_event_receiver(self._window, self)
     self._window = None
コード例 #5
0
ファイル: composite.py プロジェクト: dmgerman/hacking
 def invalidate_pixmap(self):
     log("invalidating named pixmap", type="pixmap")
     if self._listening_to is not None:
         # Don't want to stop listening to self._window!:
         assert self._window not in self._listening_to
         for w in self._listening_to:
             remove_event_receiver(w, self)
         self._listening_to = None
     self._contents_handle = None
コード例 #6
0
ファイル: composite.py プロジェクト: dmgerman/hacking
 def destroy(self):
     if not self._already_composited:
         trap.swallow(xcomposite_unredirect_window, self._window)
     trap.swallow(xdamage_stop, self._window, self._damage_handle)
     self._damage_handle = None
     self._contents_handle = None
     self.invalidate_pixmap()
     remove_event_receiver(self._window, self)
     self._window = None
コード例 #7
0
 def destroy(self):
     if self._window is None:
         log.warn("composite window %s already destroyed!", self)
         return
     #clear the reference to the window early:
     win = self._window
     #Note: invalidate_pixmap()/_cleanup_listening() use self._window, but won't care if it's None
     self._window = None
     remove_event_receiver(win, self)
     self.invalidate_pixmap()
     if not self._already_composited:
         trap.swallow_synced(xcomposite_unredirect_window, win)
     if self._damage_handle:
         trap.swallow_synced(xdamage_stop, win, self._damage_handle)
         self._damage_handle = None
     #note: this should be redundant since we cleared the
     #reference to self._window and shortcut out in do_get_property_contents_handle
     #but it's cheap anyway
     self.invalidate_pixmap()
コード例 #8
0
ファイル: tray.py プロジェクト: rudresh2319/Xpra
 def cleanup(self):
     log("Tray.cleanup()")
     root = gtk.gdk.get_default_root_window()
     owner = myGetSelectionOwner(root, SELECTION)
     if owner==get_xwindow(self.tray_window):
         mySetSelectionOwner(root, const["XNone"], SELECTION)
     else:
         log.warn("Tray.cleanup() we were no longer the selection owner")
     remove_event_receiver(self.tray_window, self)
     def undock(window):
         log("undocking %s", window)
         withdraw(window)
         reparent(window, root, 0, 0)
         map_raised(window)
     for window, tray_window in self.tray_windows.items():
         trap.swallow_synced(undock, window)
         tray_window.destroy()
     self.tray_window.destroy()
     self.tray_window = None
     log("Tray.cleanup() done")
コード例 #9
0
ファイル: selection.py プロジェクト: dmgerman/hacking
 def do_wimpiggy_destroy_event(self, event):
     remove_event_receiver(event.window, self)
     gtk.main_quit()
コード例 #10
0
ファイル: composite.py プロジェクト: svn2github/Xpra
 def _cleanup_listening(self, listening):
     # Don't want to stop listening to self._window!:
     if self._listening_to:
         assert self._window not in self._listening_to
         for w in self._listening_to:
             remove_event_receiver(w, self)
コード例 #11
0
 def _cleanup_listening(self, listening):
     if listening:
         # Don't want to stop listening to self._window!:
         assert self._window is None or self._window not in listening
         for w in listening:
             remove_event_receiver(w, self)
コード例 #12
0
ファイル: selection.py プロジェクト: yodamaster/partiwm
 def do_wimpiggy_destroy_event(self, event):
     remove_event_receiver(event.window, self)
     gtk.main_quit()
コード例 #13
0
ファイル: composite.py プロジェクト: yodamaster/partiwm
 def _cleanup_listening(self, listening):
     # Don't want to stop listening to self._window!:
     assert self._window not in self._listening_to
     for w in self._listening_to:
         remove_event_receiver(w, self)