summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2011-03-26 23:34:45 +0100
committerBenjamin Otte <otte@redhat.com>2011-03-27 00:48:26 +0100
commitfafee4e27645f2b9f819444ad8ce6fe1f67182b8 (patch)
tree0bd4b438e32f6dd9bf4eb2becd64f38d168d2c50
parentaf8a6a7abd02c0862be794c33e477ef2128a01ac (diff)
downloadgtk+-fafee4e27645f2b9f819444ad8ce6fe1f67182b8.tar.gz
widget: Emit initial style-set signal in the same situations as GTK2
This ensures that widgets that aren't ported and rely on the style-set signal being emitted work as well as before. They should not rely on style-set being emitted however. Note that this function is a no-op if the initial style has been set already and is very cheap if it has not been set yet. It only becomes relevant if the resulting style actually gets used. https://bugzilla.gnome.org/show_bug.cgi?id=639584
-rw-r--r--gtk/gtksizerequest.c2
-rw-r--r--gtk/gtkwidget.c5
2 files changed, 6 insertions, 1 deletions
diff --git a/gtk/gtksizerequest.c b/gtk/gtksizerequest.c
index adc218713b..4b379cc780 100644
--- a/gtk/gtksizerequest.c
+++ b/gtk/gtksizerequest.c
@@ -339,6 +339,8 @@ compute_size_for_orientation (GtkWidget *widget,
{
gint adjusted_min, adjusted_natural, adjusted_for_size = for_size;
+ gtk_widget_ensure_style (widget);
+
if (orientation == GTK_SIZE_GROUP_HORIZONTAL)
{
if (for_size < 0)
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 4c91548969..7a589587cc 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -9201,6 +9201,8 @@ gtk_widget_render_icon (GtkWidget *widget,
GtkIconSize size,
const gchar *detail)
{
+ gtk_widget_ensure_style (widget);
+
return gtk_widget_render_icon_pixbuf (widget, stock_id, size);
}
@@ -10622,7 +10624,8 @@ gtk_widget_real_destroy (GtkWidget *object)
gtk_grab_remove (widget);
- g_object_unref (priv->style);
+ if (priv->style)
+ g_object_unref (priv->style);
priv->style = gtk_widget_get_default_style ();
g_object_ref (priv->style);
}