overlay: deal gracefully with main widget being absent

It can happen that we get a size request when the main widget
is still NULL. Currently we hit a critical in this case, and
stumble on. We can do better.
Opening a new tab in nautilus is hitting this case.
https://bugzilla.gnome.org/show_bug.cgi?id=727643
This commit is contained in:
Matthias Clasen 2014-04-05 11:21:50 -04:00
parent fee33b1a81
commit 2a26c39b29

View File

@ -203,13 +203,20 @@ gtk_overlay_get_main_widget_allocation (GtkOverlay *overlay,
main_alloc.width = gtk_widget_get_allocated_width (grandchild);
main_alloc.height = gtk_widget_get_allocated_height (grandchild);
}
else
else if (GTK_IS_WIDGET (main_widget))
{
main_alloc.x = 0;
main_alloc.y = 0;
main_alloc.width = gtk_widget_get_allocated_width (main_widget);
main_alloc.height = gtk_widget_get_allocated_height (main_widget);
}
else
{
main_alloc.x = 0;
main_alloc.y = 0;
main_alloc.width = 1;
main_alloc.height = 1;
}
if (main_alloc_out)
*main_alloc_out = main_alloc;