diff options
author | Benjamin Otte <otte@redhat.com> | 2015-12-16 04:44:52 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2015-12-16 04:46:23 +0100 |
commit | fab181fcfa782b19dcc96a1c7f5b47033b4c200b (patch) | |
tree | eaec64ad215e20edbee14a43b74c994962e8064a | |
parent | 9d56a076cc562913e20f422aad9bfbb19d393518 (diff) | |
download | gtk+-fab181fcfa782b19dcc96a1c7f5b47033b4c200b.tar.gz |
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.
-rw-r--r-- | gtk/gtkbuiltinicon.c | 14 |
1 files changed, 14 insertions, 0 deletions
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; |