XIconifyWindow(3)

🌸 NAME 🌸

okay bestie, welcome to XIconifyWindow(3) from the XLIB FUNCTIONS corner πŸ’… β€” and these three functions are literally here to manipulate top-level windows ✨. The squad is XIconifyWindow, XWithdrawWindow, and XReconfigureWMWindow. No cap, that's the whole vibe.

πŸŽ€ SYNTAX πŸŽ€

Status XIconifyWindow(Display *display, Window w, int screen_number);

Status XWithdrawWindow(Display *display, Window w, int screen_number);

Status XReconfigureWMWindow(Display *display, Window w, int
       screen_number, unsigned int value_mask, XWindowChanges *values);

πŸ’… ARGUMENTS πŸ’…

  • display β€” Specifies the connection to the X server. Your little link to the X server, basically 🫢.
  • screen_number β€” Specifies the appropriate screen number on the host server. Pick the right screen, bestie πŸ–₯️.
  • value_mask β€” Specifies which values are to be set using information in the values structure. This mask is the bitwise inclusive OR of the valid configure window values bits ✨.
  • values β€” Specifies the XWindowChanges structure. It's giving "here's the configuration data" πŸŽ€.
  • w β€” Specifies the window. The main character window in question πŸ‘‘.

πŸ”₯ DESCRIPTION πŸ”₯

The XIconifyWindow function sends a WM_CHANGE_STATE ClientMessage event with a format of 32 and a first data element of IconicState (as described in section 4.1.4 of the Inter-Client Communication Conventions Manual) and a window of w to the root window of the specified screen with an event mask set to SubstructureNotifyMask|SubstructureRedirectMask. Window managers may elect to receive this message and if the window is in its normal state, may treat it as a request to change the window's state from normal to iconic. If the WM_CHANGE_STATE property cannot be interned, XIconifyWindow does not send a message and returns a zero status. It returns a nonzero status if the client message is sent successfully; otherwise, it returns a zero status. So yeah β€” successful send = nonzero, failed send = zero, and no message at all if the property can't be interned 😭.

The XWithdrawWindow function unmaps the specified window and sends a synthetic UnmapNotify event to the root window of the specified screen. Window managers may elect to receive this message and may treat it as a request to change the window's state to withdrawn. When a window is in the withdrawn state, neither its normal nor its iconic representations is visible πŸ‘€. It returns a nonzero status if the UnmapNotify event is successfully sent; otherwise, it returns a zero status. Also important: XWithdrawWindow can generate a BadWindow error πŸ’€.

The XReconfigureWMWindow function issues a ConfigureWindow request on the specified top-level window. If the stacking mode is changed and the request fails with a BadMatch error, the error is trapped by Xlib and a synthetic ConfigureRequestEvent containing the same configuration parameters is sent to the root of the specified window. Window managers may elect to receive this event and treat it as a request to reconfigure the indicated window. It returns a nonzero status if the request or event is successfully sent; otherwise, it returns a zero status. And heads up: XReconfigureWMWindow can generate BadValue and BadWindow errors ⚠️.

πŸ¦‹ DIAGNOSTICS πŸ¦‹

  • BadValue β€” Some numeric value falls outside the range of values accepted by the request. Unless a specific range is specified for an argument, the full range defined by the argument's type is accepted. Any argument defined as a set of alternatives can generate this error. It's giving "number said no" πŸ™ˆ.
  • BadWindow β€” A value for a Window argument does not name a defined Window. That window is not giving defined-window energy, bestie πŸ’€.

🌈 SEE ALSO 🌈


made with πŸ’– by the X Version 11 / libX11 1.8.14 girlies, page: XIconifyWindow(3) β€” mwah, slay, go read the whole Xlib docs bestie 🫢✨

πŸ“¦ where this page comes from