Name

ClientMessage — xclient

When Generated

A ClientMessage event is sent as a result of a call to XSendEvent() by a client to a particular window. Any type of event can be sent with XSendEvent(), but it will be distinguished from normal events by the send_event member being set to True. If your program wants to be able to treat events sent with XSendEvent() as different from normal events, you can read this member.

Select With

There is no event mask for ClientMessage events, and they are not selected with XSelectInput. Instead XSendEvent directs them to a specific window, which is given as a window ID: the PointerWindow or the InputFocus.

XEvent Structure Name

typedef union _XEvent {
    ...
    XClientMessageEvent xclient;
    ...
} XEvent;

Event Structure

typedef struct {
    int type;
    unsigned long serial;    /* # of last request processed by server */
    Bool send_event;         /* True if this came from SendEvent request */
    Display *display;        /* Display the event was read from */
    Window window;
    Atom message_type;
    int format;
    union {
         char b[20];
         short s[10];
         long l[5];
    } data;
} XClientMessageEvent;

Event Structure Members

message_type

An atom that specifies how the data is to be interpreted by the receiving client. The X server places no interpretation on the type or the data, but it must be a list of 8-bit, 16-bit, or 32-bit quantities, so that the X server can correctly swap bytes as necessary. The data always consists of twenty 8-bit values, ten 16-bit values, or five 32-bit values, although each particular message ...

Get XLIB Programming Manual, Rel. 5, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.