---
name: "XtRealizeWidget"
section: "3"
platform: "linux"
package: "libxt"
version: "1.3.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XtRealizeWidget"
---

# XtRealizeWidget(3)

realize and unrealize widgets

## NAME

XtRealizeWidget, XtIsRealized, XtUnrealizeWidget - realize and unrealize widgets

## SYNTAX

\#include \<X11/Intrinsic.h\>

void XtRealizeWidget(Widget *w*);

Boolean XtIsRealized(Widget *w*);

void XtUnrealizeWidget(Widget *w*);

## ARGUMENTS

- *w*

  Specifies the widget.

## DESCRIPTION

If the widget is already realized, **XtRealizeWidget** simply returns. Otherwise, it performs the following:

- •

  Binds all action names in the widget's translation table to procedures (see Section 10.1.2).

- •

  Makes a post-order traversal of the widget tree rooted at the specified widget and calls the change\_managed procedure of each composite widget that has one or more managed children.

- •

  Constructs an **XSetWindowAttributes** structure filled in with information derived from the **Core** widget fields and calls the realize procedure for the widget, which adds any widget-specific attributes and creates the X window.

- •

  If the widget is not a subclass of **compositeWidgetClass**, **XtRealizeWidget** returns; otherwise, it continues and performs the following:

  - \-

    Descends recursively to each of the widget's managed children and calls the realize procedures. Primitive widgets that instantiate children are responsible for realizing those children themselves.

  - \-

    Maps all of the managed children windows that have mapped\_when\_managed **True**. (If a widget is managed but mapped\_when\_managed is **False**, the widget is allocated visual space but is not displayed. Some people seem to like this to indicate certain states.)

If the widget is a top-level shell widget (that is, it has no parent), and mapped\_when\_managed is **True**, **XtRealizeWidget** maps the widget window.

The **XtIsRealized** function returns **True** if the widget has been realized, that is, if the widget has a nonzero X window ID.

Some widget procedures (for example, set\_values) might wish to operate differently after the widget has been realized.

The **XtUnrealizeWidget** function destroys the windows of an existing widget and all of its children (recursively down the widget tree). To recreate the windows at a later time, call **XtRealizeWidget** again. If the widget was managed, it will be unmanaged automatically before its window is freed.

## SEE ALSO

[XtManageChildren(3)](/XtManageChildren/3.md)\
 *X Toolkit Intrinsics - C Language Interface*\
 *Xlib - C Language X Interface*
