]> Pileus Git - ~andy/gtk/commitdiff
treeview: use gtk_tree_view_ensure_background() consistently
authorCosimo Cecchi <cosimoc@gnome.org>
Wed, 16 Nov 2011 21:01:36 +0000 (16:01 -0500)
committerCosimo Cecchi <cosimoc@gnome.org>
Wed, 16 Nov 2011 21:09:00 +0000 (16:09 -0500)
In gtk_tree_view_state_flags_changed() we were setting the background on
the bin_window without the necessary "view" style class, making the
treeview render with the wrong color in some circumstances (such as when
adding an empty treeview in a window, as spotted by Brian Smith).

gtk/gtktreeview.c

index 52cde55023c32e4d4a62c374fc258f4cd47ecf59..cab0f52402c744438a12c41ad9fb9a10ed658c5b 100644 (file)
@@ -2199,7 +2199,6 @@ static void
 gtk_tree_view_realize (GtkWidget *widget)
 {
   GtkAllocation allocation;
-  GtkStyleContext *context;
   GtkTreeView *tree_view = GTK_TREE_VIEW (widget);
   GdkWindow *window;
   GdkWindowAttr attributes;
@@ -2268,14 +2267,7 @@ gtk_tree_view_realize (GtkWidget *widget)
                                                   &attributes, attributes_mask);
   gdk_window_set_user_data (tree_view->priv->header_window, widget);
 
-  context = gtk_widget_get_style_context (widget);
-
-  gtk_style_context_save (context);
-  gtk_style_context_add_class (context, GTK_STYLE_CLASS_VIEW);
-  gtk_style_context_set_background (context, tree_view->priv->bin_window);
-  gtk_style_context_restore (context);
-
-  gtk_style_context_set_background (context, tree_view->priv->header_window);
+  gtk_tree_view_ensure_background (tree_view);
 
   tmp_list = tree_view->priv->children;
   while (tmp_list)
@@ -8479,16 +8471,7 @@ gtk_tree_view_style_updated (GtkWidget *widget)
 
   if (gtk_widget_get_realized (widget))
     {
-      GtkStyleContext *context;
-
-      context = gtk_widget_get_style_context (widget);
-
-      gtk_style_context_save (context);
-      gtk_style_context_add_class (context, GTK_STYLE_CLASS_VIEW);
-      gtk_style_context_set_background (context, tree_view->priv->bin_window);
-      gtk_style_context_restore (context);
-
-      gtk_style_context_set_background (context, tree_view->priv->header_window);
+      gtk_tree_view_ensure_background (tree_view);
 
       gtk_tree_view_set_grid_lines (tree_view, tree_view->priv->grid_lines);
       gtk_tree_view_set_enable_tree_lines (tree_view, tree_view->priv->tree_lines_enabled);
@@ -15922,13 +15905,7 @@ gtk_tree_view_state_flags_changed (GtkWidget     *widget,
                                    GtkStateFlags  previous_state)
 {
   if (gtk_widget_get_realized (widget))
-    {
-      GtkTreeView *tree_view = GTK_TREE_VIEW (widget);
-      GtkStyleContext *context;
-
-      context = gtk_widget_get_style_context (widget);
-      gtk_style_context_set_background (context, tree_view->priv->bin_window);
-    }
+    gtk_tree_view_ensure_background (GTK_TREE_VIEW (widget));
 
   gtk_widget_queue_draw (widget);
 }