add sendClientMessage
This commit is contained in:
parent
ede324b490
commit
94d86896b4
2 changed files with 27 additions and 0 deletions
22
src/XAtom.cc
22
src/XAtom.cc
|
@ -491,3 +491,25 @@ void XAtom::eraseValue(Window win, Atoms atom) const {
|
||||||
assert(atom >= 0 && atom < NUM_ATOMS);
|
assert(atom >= 0 && atom < NUM_ATOMS);
|
||||||
XDeleteProperty(_display, win, _atoms[atom]);
|
XDeleteProperty(_display, win, _atoms[atom]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void XAtom::sendClientMessage(Window target, Atoms type, Window about,
|
||||||
|
long data, long data1, long data2,
|
||||||
|
long data3) const {
|
||||||
|
assert(atom >= 0 && atom < NUM_ATOMS);
|
||||||
|
assert(target != None);
|
||||||
|
|
||||||
|
XEvent e;
|
||||||
|
e.xclient.type = ClientMessage;
|
||||||
|
e.xclient.format = 32;
|
||||||
|
e.xclient.message_type = _atoms[type];
|
||||||
|
e.xclient.window = about;
|
||||||
|
e.xclient.data.l[0] = data;
|
||||||
|
e.xclient.data.l[1] = data1;
|
||||||
|
e.xclient.data.l[2] = data2;
|
||||||
|
e.xclient.data.l[3] = data3;
|
||||||
|
|
||||||
|
XSendEvent(_display, target, False,
|
||||||
|
SubstructureRedirectMask | SubstructureNotifyMask,
|
||||||
|
&e);
|
||||||
|
}
|
||||||
|
|
|
@ -212,6 +212,11 @@ public:
|
||||||
|
|
||||||
void eraseValue(Window win, Atoms atom) const;
|
void eraseValue(Window win, Atoms atom) const;
|
||||||
|
|
||||||
|
// sends a client message a window
|
||||||
|
void sendClientMessage(Window target, Atoms type, Window about,
|
||||||
|
long data = 0, long data1 = 0, long data2 = 0,
|
||||||
|
long data3 = 0) const;
|
||||||
|
|
||||||
// temporary function!! remove when not used in blackbox.hh anymore!!
|
// temporary function!! remove when not used in blackbox.hh anymore!!
|
||||||
inline Atom getAtom(Atoms a)
|
inline Atom getAtom(Atoms a)
|
||||||
{ assert(a >= 0 && a < NUM_ATOMS); Atom ret = _atoms[a];
|
{ assert(a >= 0 && a < NUM_ATOMS); Atom ret = _atoms[a];
|
||||||
|
|
Loading…
Reference in a new issue