gtkWidgetGetToplevel: gtkWidgetGetToplevel
Description
This function returns the topmost widget in the container hierarchy
widget is a part of. If widget has no parent widgets, it will be
returned as the topmost widget. No reference will be added to the
returned widget; it should not be unreferenced.Usage
gtkWidgetGetToplevel(object)
Value
GtkWidget] the topmost ancestor of widget, or widget itself
if there's no ancestor. [ transfer none ]
Details
Note the difference in behavior vs. gtkWidgetGetAncestor;
gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW)
would return
NULL if widget wasn't inside a toplevel window, and if the
window was inside a GtkWindow-derived widget which was in turn
inside the toplevel GtkWindow. While the second case may
seem unlikely, it actually happens when a GtkPlug is embedded
inside a GtkSocket within the same application.
To reliably find the toplevel GtkWindow, use
gtkWidgetGetToplevel and check if the TOPLEVEL flags
is set on the result.
toplevel <- widget$getToplevel()
if (toplevel$flags() & GtkWidgetFlags["toplevel"])
{
# Perform action on toplevel.
}