diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols index 91acae8652..1518e36a67 100644 --- a/gtk/gtk.symbols +++ b/gtk/gtk.symbols @@ -5134,6 +5134,7 @@ gtk_widget_get_parent_window gtk_widget_get_pointer gtk_widget_get_receives_default gtk_widget_get_root_window +gtk_widget_get_requisition gtk_widget_get_screen gtk_widget_get_sensitive gtk_widget_get_settings diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index f969d477f3..ca77d8c4c0 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -11304,6 +11304,32 @@ gtk_widget_set_allocation (GtkWidget *widget, widget->allocation = *allocation; } +/** + * gtk_widget_get_requisition: + * @widget: a #GtkWidget + * @requisition: (out): a pointer to a #GtkRequisition to copy to + * + * Retrieves the widget's requisition. + * + * This function should only be used by widget implementations in + * order to figure whether the widget's requisition has actually + * changed after some internal state change (so that they can call + * gtk_widget_queue_resize() instead of gtk_widget_queue_draw()). + * + * Normally, gtk_widget_size_request() should be used. + * + * Since: 2.20 + */ +void +gtk_widget_get_requisition (GtkWidget *widget, + GtkRequisition *requisition) +{ + g_return_if_fail (GTK_IS_WIDGET (widget)); + g_return_if_fail (requisition != NULL); + + *requisition = widget->requisition; +} + /** * gtk_widget_set_window: * @widget: a #GtkWidget diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index 8039df71a5..66d58b0476 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -961,6 +961,9 @@ void gtk_widget_get_allocation (GtkWidget *widget, void gtk_widget_set_allocation (GtkWidget *widget, const GtkAllocation *allocation); +void gtk_widget_get_requisition (GtkWidget *widget, + GtkRequisition *requisition); + gboolean gtk_widget_child_focus (GtkWidget *widget, GtkDirectionType direction); gboolean gtk_widget_keynav_failed (GtkWidget *widget,