From fab181fcfa782b19dcc96a1c7f5b47033b4c200b Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 16 Dec 2015 04:44:52 +0100 Subject: [PATCH] builtinicon: Change the way size is handled Make min-width/height have preference over the set default size. This allows shrinking the widget. The default size is only used if min-width is not set (or explicitly set to 0. --- gtk/gtkbuiltinicon.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gtk/gtkbuiltinicon.c b/gtk/gtkbuiltinicon.c index c2e2c07cb8..9c497c4d1d 100644 --- a/gtk/gtkbuiltinicon.c +++ b/gtk/gtkbuiltinicon.c @@ -22,6 +22,7 @@ #include "gtkbuiltiniconprivate.h" #include "gtkcssnodeprivate.h" +#include "gtkcssnumbervalueprivate.h" #include "gtkrendericonprivate.h" typedef struct _GtkBuiltinIconPrivate GtkBuiltinIconPrivate; @@ -43,6 +44,19 @@ gtk_builtin_icon_get_preferred_size (GtkCssGadget *gadget, gint *natural_baseline) { GtkBuiltinIconPrivate *priv = gtk_builtin_icon_get_instance_private (GTK_BUILTIN_ICON (gadget)); + double min_size; + guint property; + + if (orientation == GTK_ORIENTATION_HORIZONTAL) + property = GTK_CSS_PROPERTY_MIN_WIDTH; + else + property = GTK_CSS_PROPERTY_MIN_HEIGHT; + min_size = _gtk_css_number_value_get (gtk_css_style_get_value (gtk_css_gadget_get_style (gadget), property), 100); + if (min_size > 0.0) + { + *minimum = *natural = 0; + return; + } *minimum = priv->default_size; *natural = priv->default_size;