The X server generates MapNotify and UnmapNotify events when a window changes state from unmapped to mapped or vice versa.
To receive these events on a single window, use StructureNotifyMask in the call to XSelectInput for the window. To receive these events for all children of a particular parent, specify the parent window ID and use SubstructureNotifyMask.
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 event;
Window window;
Bool override_redirect; /* boolean, is override set */
} XMapEvent;
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 event;
Window window;
Bool from_configure;
} XUnmapEvent;
|
| event | The window that selected this event. | |
| window | The window that was just mapped or unmapped. | |
| override_redirect (XMapEvent only) | True or False. The value of the override_redirect attribute of the window that was just mapped. | |
| from_configure (XUnmapEvent only) | True if the event was generated as a result of a resizing of the window's parent when the window itself had a win_gravity of UnmapGravity. See the description of the win_gravity attribute in 4.3.4 of Volume One. False otherwise. |