예제 #1
0
    def cleanup(self):
        # This is my attempt to cleanly close, in such a way that the icons do
        # not get an X window error
        for tid in self.tray.order:
            t = self.tray.tasks[tid]
            g = t.obj.query_tree()
            t.obj.unmap()
            t.obj.unmap_sub_windows()
            self.dsp.sync()
            t.obj.reparent(g.root.id, 0, 0)

        #Release the selection so that other system trays can start.
        #This would be done automatically by the X-server anyway when the screenlet exits
        request.SetSelectionOwner(display=self.selowin.display,
                                  onerror=None,
                                  window=0,
                                  selection=self.selection,
                                  time=X.CurrentTime)
        self.tr__sendEvent(self.root, self.manager,
                           [X.CurrentTime, self.selection, 0],
                           (X.StructureNotifyMask))
        self.dsp.sync()
예제 #2
0
 def set_selection_owner(self, selection, time, onerror=None):
     request.SetSelectionOwner(display=self.display,
                               onerror=onerror,
                               window=self.id,
                               selection=selection,
                               time=time)