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. |