widget: Warn on calls to queue_resize() during size_allocate()

This happens way too much, so it's disabled unless GTK_DEBUG=geometry is
on.

Also, we can't detect it in the call to queue_resize() yet, only during
size_allocate(), so the warning comes after the signal emission.
This commit is contained in:
Benjamin Otte 2015-09-28 05:42:04 +02:00
parent 4d631a9144
commit a4587ef4a0

View File

@ -5991,6 +5991,13 @@ gtk_widget_size_allocate_with_baseline (GtkWidget *widget,
GTK_WIDGET_GET_CLASS (widget)->size_allocate (widget, &real_allocation); GTK_WIDGET_GET_CLASS (widget)->size_allocate (widget, &real_allocation);
/* Size allocation is god... after consulting god, no further requests or allocations are needed */ /* Size allocation is god... after consulting god, no further requests or allocations are needed */
#ifdef G_ENABLE_DEBUG
if (GTK_DEBUG_CHECK (GEOMETRY) && gtk_widget_get_resize_needed (widget))
{
g_warning ("%s %p or a child called gtk_widget_queue_resize() during size_allocte().",
gtk_widget_get_name (widget), widget);
}
#endif
gtk_widget_ensure_resize (widget); gtk_widget_ensure_resize (widget);
priv->alloc_needed = FALSE; priv->alloc_needed = FALSE;