]> Pileus Git - ~andy/gtk/commitdiff
bin: initialize out variables to zero for get_preferred_ functions.
authorAlban Browaeys <prahal@yahoo.com>
Mon, 4 Mar 2013 15:22:00 +0000 (16:22 +0100)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 5 Mar 2013 01:04:05 +0000 (20:04 -0500)
Fixes case of child not visible then minimum_width/heigth natural_width
/heigth not initialized. Thus caller gets a random value.

https://bugzilla.gnome.org/show_bug.cgi?id=695131

gtk/gtkbin.c

index c52ca37fe8feaffc6308668b178b1e4c0af67976..b64f54156d58a124a8252eaa76807d1ea7f9b675 100644 (file)
@@ -198,6 +198,9 @@ gtk_bin_get_preferred_width (GtkWidget *widget,
   GtkBinPrivate *priv = bin->priv;
   gint border_width;
 
+  *minimum_width = 0;
+  *natural_width = 0;
+
   if (priv->child && gtk_widget_get_visible (priv->child))
     {
       gint child_min, child_nat;
@@ -221,6 +224,9 @@ gtk_bin_get_preferred_height (GtkWidget *widget,
   GtkBinPrivate *priv = bin->priv;
   gint border_width;
 
+  *minimum_height = 0;
+  *natural_height = 0;
+
   if (priv->child && gtk_widget_get_visible (priv->child))
     {
       gint child_min, child_nat;
@@ -245,6 +251,9 @@ gtk_bin_get_preferred_width_for_height (GtkWidget *widget,
   GtkBinPrivate *priv = bin->priv;
   gint border_width;
 
+  *minimum_width = 0;
+  *natural_width = 0;
+
   border_width = gtk_bin_get_effective_border_width (bin);
 
   if (priv->child && gtk_widget_get_visible (priv->child))
@@ -271,6 +280,9 @@ gtk_bin_get_preferred_height_for_width  (GtkWidget *widget,
   GtkBinPrivate *priv = bin->priv;
   gint border_width;
 
+  *minimum_height = 0;
+  *natural_height = 0;
+
   border_width = gtk_bin_get_effective_border_width (bin);
 
   if (priv->child && gtk_widget_get_visible (priv->child))