widget: Fix checks in gtk_widget_snapshot()

If the widget isn't drawable anyway, just return;

If the widget needs an allocate, print a warning, since it indicates a
problem in the widget workflow (e.g. forgot to size_allocate a child
widget).

This maches the previous checks in gtk_widget_draw (with the same
problems).
This commit is contained in:
Timm Bäder 2017-03-26 12:45:50 +02:00
parent aa9da1fe1f
commit 8f2d0bc5a3

View File

@ -15440,9 +15440,15 @@ gtk_widget_snapshot (GtkWidget *widget,
double opacity;
cairo_rectangle_int_t offset_clip;
if (_gtk_widget_get_alloc_needed (widget))
if (!_gtk_widget_is_drawable (widget))
return;
if (_gtk_widget_get_alloc_needed (widget))
{
g_warning ("Trying to snapshot %s %p without a current allocation", G_OBJECT_TYPE_NAME (widget), widget);
return;
}
priv = widget->priv;
offset_clip = priv->clip;
offset_clip.x -= priv->allocation.x;