Blame wxGTK3-3.0.2-size-alloc-fix.patch
|
|
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)
|