[gtk+/gtk-3-0] widget: Emit initial style-set signal in the same situations as GTK2



commit 6444f30e8195fc0aef6a74f42f26b32c25bf9699
Author: Benjamin Otte <otte redhat com>
Date:   Sat Mar 26 23:34:45 2011 +0100

    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

 gtk/gtksizerequest.c |    2 ++
 gtk/gtkwidget.c      |    5 ++++-
 2 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtksizerequest.c b/gtk/gtksizerequest.c
index ef96ed0..6d3daad 100644
--- a/gtk/gtksizerequest.c
+++ b/gtk/gtksizerequest.c
@@ -205,6 +205,8 @@ compute_size_for_orientation (GtkWidget         *widget,
       gint min_size = 0;
       gint nat_size = 0;
 
+      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 a4fe908..befffff 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -9202,6 +9202,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);
 }
 
@@ -10623,7 +10625,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);
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]