This is the step in a widget's life cycle where it creates its own GdkWindow, or otherwise associates itself with its parent's GdkWindow. If the widget has its own window, then it must also attach a style to it. A widget becomes unrealized by destroying its associated GdkWindow. When a widget is realized, it must turn on its GTK_REALIZED flag. Widgets that don't own the GdkWindow on which they draw are called no-window widgets. This can be tested with the GTK_WIDGET_NO_WINDOW() macro. Normally, these widgets draw on their parent's GdkWindow. Note that when a widget creates a window in its ::realize() handler, it does not actually show the window. That is, the window's structure is just created in memory. The widget actually shows the window when it gets mapped.