XVisibilityEvent(3)
β¨ NAME β¨
XVisibilityEvent β the VisibilityNotify event structure. Bestie, we're in the XLIB FUNCTIONS manual and this page is XVisibilityEvent(3), so let's get into it π
.
π§ STRUCTURES π§
The VisibilityNotify event structure is literally this, no cap:
typedef struct {
int type; /* VisibilityNotify */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window;
int state;
} XVisibilityEvent;
When you receive this event, the structure members are set like this π
typeβ set to the event type constant name that uniquely identifies it. For example, when the X server reports aGraphicsExposeevent to a client application, it sends anXGraphicsExposeEventstructure with thetypemember set toGraphicsExpose.displayβ set to a pointer to the display the event was read on.send_eventβ set toTrueif the event came from aSendEventprotocol request.serialβ set from the serial number reported in the protocol, but expanded from the 16-bit least-significant bits to a full 32-bit value.windowβ set to the window that is most useful to toolkit dispatchers.
Then window comes back for round two: the window member is set to the window whose visibility state changes. The state member is set to the state of the window's visibility, and it can be VisibilityUnobscured, VisibilityPartiallyObscured, or VisibilityFullyObscured.
The X server ignores all of a window's subwindows when determining the visibility state of the window, and processes VisibilityNotify events according to the following:
- When the window changes state from partially obscured, fully obscured, or not viewable to viewable and completely unobscured, the X server generates the event with the
statemember of theXVisibilityEventstructure set toVisibilityUnobscured. - When the window changes state from viewable and completely unobscured or not viewable to viewable and partially obscured, the X server generates the event with the
statemember of theXVisibilityEventstructure set toVisibilityPartiallyObscured. - When the window changes state from viewable and completely unobscured, viewable and partially obscured, or not viewable to viewable and fully obscured, the X server generates the event with the
statemember of theXVisibilityEventstructure set toVisibilityFullyObscured.
π¦ SEE ALSO π¦
XAnyEvent(3)XButtonEvent(3)XCreateWindowEvent(3)XCirculateEvent(3)XCirculateRequestEvent(3)XColormapEvent(3)XConfigureEvent(3)XConfigureRequestEvent(3)XCrossingEvent(3)XDestroyWindowEvent(3)XErrorEvent(3)XExposeEvent(3)XFocusChangeEvent(3)XGraphicsExposeEvent(3)XGravityEvent(3)XKeymapEvent(3)XMapEvent(3)XMapRequestEvent(3)XPropertyEvent(3)XReparentEvent(3)XResizeRequestEvent(3)XSelectionClearEvent(3)XSelectionEvent(3)XSelectionRequestEvent(3)XUnmapEvent(3)Xlib - C Language X Interface
That's the whole page, bestie β footer says X Version 11 and libX11 1.8.14, signed as XVisibilityEvent(3). No date is printed in this footer, so no invented calendar tea πΈ.
π¦ where this page comes from
- alpine 3.24: libx11-doc 1.8.14-r0 Β· X11
- arch rolling: libx11 1.8.14-1 Β· MIT AND X11
- nixos 26.05: libx11 1.8.14
- nixpkgs unstable: libx11 1.8.14
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms