Package: gtk

Function gtk-widget-toplevel

Lambda List

gtk-widget-toplevel (widget)

Arguments

widget -- a gtk-widget object

Return Value

The topmost ancestor of widget, or widget itself if there is no ancestor.

Details

This function returns the topmost widget in the container hierarchy the widget is a part of. If the widget has no parent widgets, it will be returned as the topmost widget.

Note the difference in behavior versus the gtk-widget-ancestor function. The call (gtk-widget-ancestor widget "GtkWindow") would return nil if the widget was not inside a toplevel window, and if the window was inside a gtk-window derived widget which was in turn inside the toplevel gtk-window widget. While the second case may seem unlikely, it actually happens when a gtk-plug widget is embedded inside a gtk-socket widget within the same application.

To reliably find the toplevel gtk-window widget, use the gtk-widget-toplevel function and check the type of the result to be of "GtkWindow" type. For instance, to get the title of the toplevel window of the widget, one might use:
(defun get-widget-toplevel-title (widget)
  (let ((toplevel (gtk-widget-toplevel widget)))
    (when (eq (gtype "GtkWindow") (g-object-type toplevel))
      (gtk-window-title toplevel))))  
 

See also

2021-9-16