def send_event(self, data, event_type, mask): """Send event to the root window.""" event = ClientMessage( window=self._win, client_type=event_type, data=(32, (data))) self.__root.send_event(event, event_mask=mask)
def _client_msg(self, window, atom_name, data): ev_data = (data, ) + (0, ) * 4 ev = ClientMessage(window=window, client_type=self._atoms[atom_name], data=(32, ev_data)) ev_mask = X.SubstructureRedirectMask | X.SubstructureNotifyMask self._root.send_event(ev, event_mask=ev_mask) self._display.sync()
def close_client(self, event): if not event.child: return cm_event = ClientMessage( window=event.child, client_type=self.WM_PROTOCOLS, data=(32, [self.WM_DELETE_WINDOW, X.CurrentTime, 0, 0, 0])) event.child.send_event(cm_event)
def set_property(self, prop, data, mask=None): if isinstance(data, str): datasize = 8 else: data = (data + [0] * (5 - len(data)))[:5] datasize = 32 e = ClientMessage(window=self.win, client_type=display.intern_atom(prop), data=(datasize, data)) if not mask: mask = (SubstructureRedirectMask | SubstructureNotifyMask) display.screen().root.send_event(e, event_mask=mask)
def send(self, msg): """Used to send a message to Skype""" if self.win['skype'] is None: return False ec = Xlib.error.CatchError(Xlib.error.BadWindow) ctype = self.atoms['msgbegin'] for i in range(0, len(msg) - 1, 20): event = ClientMessage(window = self.win['self'], client_type = ctype, data = (8, msg[i:i+20] + (20 - len(msg[i:i+20])) * "\0")) ctype = self.atoms['msg'] self.win['skype'].send_event(event, onerror = ec) if self.debug: print "Sent:", msg self.display.sync() self.handle_error(ec.get_error())
elif subarg == 'root': values.append(screen.root) elif re.match('^\d+$', subarg): values.append(int(subarg)) elif subarg.startswith('0x'): values.append(int(subarg, 16)) else: values.append( InternAtom(display=display, name=subarg, only_if_exists=True).atom) if values[-1] == 0: print 'Warning: %s was unrecognised' % (subarg) event = ClientMessage(window=values[1], client_type=values[2], data=(32, (values[3:]))) SendEvent(destination=values[0], display=display, propagate=True, event=event, event_mask=X.SubstructureRedirectMask | X.SubstructureNotifyMask) elif arg == 'raise': CirculateWindow(display=display, window=window, direction=X.RaiseLowest) else: print 'Unknown argument: ', arg