summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2020-09-09 17:07:01 +0200
committerBenjamin Otte <otte@redhat.com>2020-09-09 17:38:37 +0200
commit8cb03a8cc079c490029b3ef9c99382a584dde298 (patch)
tree33a14253e58f8b0f5d019cb20b2207d0890acea3
parentdf7cbdfff4fe24fb92a162b119095e3afe8404a4 (diff)
downloadgtk+-8cb03a8cc079c490029b3ef9c99382a584dde298.tar.gz
widget: Add a critical when allocation is too small.
-rw-r--r--gtk/gtkwidget.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 18038fd1a4..01ea24da59 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -3785,6 +3785,28 @@ gtk_widget_allocate (GtkWidget *widget,
"How does the code know the size to allocate?",
gtk_widget_get_name (widget), widget);
}
+ if (!GTK_IS_SCROLLABLE (widget))
+ {
+ int min;
+ gtk_widget_measure (widget, GTK_ORIENTATION_VERTICAL, width, &min, NULL, NULL, NULL);
+ if (min > height)
+ {
+ g_critical ("Allocation height too small. Tried to allocate %dx%d, but %s %p needs "
+ "at least %dx%d.",
+ width, height,
+ gtk_widget_get_name (widget), widget,
+ width, min);
+ }
+ gtk_widget_measure (widget, GTK_ORIENTATION_HORIZONTAL, height, &min, NULL, NULL, NULL);
+ if (min > width)
+ {
+ g_critical ("Allocation width too small. Tried to allocate %dx%d, but %s %p needs "
+ "at least %dx%d.",
+ width, height,
+ gtk_widget_get_name (widget), widget,
+ min, height);
+ }
+ }
#endif /* G_ENABLE_DEBUG */
alloc_needed = priv->alloc_needed;