Name

KeyPress,KeyRelease — xkey

When Generated

KeyPress and KeyRelease events are generated for all keys, even those mapped to modifier keys such as Shift or Control.

Select With

Each type of keyboard event may be selected separately with KeyPressMask and KeyReleaseMask.

XEvent Structure Name

typedef union _XEvent {
    ...
    XKeyEvent xkey;
    ...
} XEvent;

Event Structure

typedef struct {
    int type;                /* of event */
    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;           /* event window it is reported relative to */
    Window root;             /* root window that the event occurred on */
    Window subwindow;        /* child window */
    Time time;               /* milliseconds */
    int x, y;                /* pointer coordinates relative to receiving
                              * window */
    int x_root, y_root;      /* coordinates relative to root */
    unsigned int state;      /* modifier key and button mask */
    unsigned int keycode;    /* server-dependent code for key */
    Bool same_screen;        /* same screen flag */
} XKeyEvent;
typedef XKeyEvent XKeyPressedEvent;
typedef XKeyEvent XKeyReleasedEvent;

Event Structure Members

subwindow

If the source window is the child of the receiving window, then the subwindow member is set to the ID of that child.

time

The server time when the button event occurred, in milliseconds. Time is declared as unsigned long, so it wraps around when it reaches the maximum value of a 32-bit number (every 49.7 days).

x, y

If the receiving window ...

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.