263c5a5
diff -up wxWidgets-3.0.2/src/gtk/win_gtk.cpp.size-alloc-fix wxWidgets-3.0.2/src/gtk/win_gtk.cpp
263c5a5
--- wxWidgets-3.0.2/src/gtk/win_gtk.cpp.size-alloc-fix	2016-04-04 14:55:37.647728846 -0400
263c5a5
+++ wxWidgets-3.0.2/src/gtk/win_gtk.cpp	2016-04-04 14:56:36.199637226 -0400
263c5a5
@@ -192,8 +192,24 @@ static void pizza_remove(GtkContainer* c
263c5a5
 }
263c5a5
 
263c5a5
 #ifdef __WXGTK3__
263c5a5
+// Get preferred size of children, to avoid GTK+ warnings complaining
263c5a5
+// that they were size-allocated without asking their preferred size
263c5a5
+static void children_get_preferred_size(const GList* p)
263c5a5
+{
263c5a5
+    for (; p; p = p->next)
263c5a5
+    {
263c5a5
+        const wxPizzaChild* child = static_cast<wxPizzaChild*>(p->data);
263c5a5
+        if (gtk_widget_get_visible(child->widget))
263c5a5
+        {
263c5a5
+            GtkRequisition req;
263c5a5
+            gtk_widget_get_preferred_size(child->widget, &req, NULL);
263c5a5
+        }
263c5a5
+    }
263c5a5
+}
263c5a5
+
263c5a5
 static void pizza_get_preferred_width(GtkWidget* widget, int* minimum, int* natural)
263c5a5
 {
263c5a5
+    children_get_preferred_size(WX_PIZZA(widget)->m_children);
263c5a5
     *minimum = 0;
263c5a5
     gtk_widget_get_size_request(widget, natural, NULL);
263c5a5
     if (*natural < 0)
263c5a5
@@ -202,6 +218,7 @@ static void pizza_get_preferred_width(Gt
263c5a5
 
263c5a5
 static void pizza_get_preferred_height(GtkWidget* widget, int* minimum, int* natural)
263c5a5
 {
263c5a5
+    children_get_preferred_size(WX_PIZZA(widget)->m_children);
263c5a5
     *minimum = 0;
263c5a5
     gtk_widget_get_size_request(widget, NULL, natural);
263c5a5
     if (*natural < 0)