]> Pileus Git - ~andy/gtk/commitdiff
tree-view: add back gtk_style_context_set_background()
authorCosimo Cecchi <cosimoc@gnome.org>
Fri, 1 Feb 2013 10:10:23 +0000 (11:10 +0100)
committerCosimo Cecchi <cosimoc@gnome.org>
Fri, 1 Feb 2013 10:27:32 +0000 (11:27 +0100)
Commit ddceddaa84222f3f2b40fe5ce3b04dc7ddf6cace removed the call to
gtk_style_context_set_background() in favour of always rendering it with
gtk_render_background() during the draw vfunc.
This has the side effect of making the backing window always
transparent, which blocks GTK from applying some optimizations during
the paint cycle. The result is that, especially in clutter-gtk
applications, scrolling performance gets really bad.

This commit partially reverts ddceddaa84222f3f2b40fe5ce3b04dc7ddf6cace
and changes the code so that both gtk_style_context_set_background() and
gtk_render_background() are called

gtk/gtktreeview.c

index 57592f61dd93efe62dc01d2827b14605b4fd1854..5de8fed730cf61d716c9c73c63d03449a44f058a 100644 (file)
@@ -2212,6 +2212,9 @@ gtk_tree_view_ensure_background (GtkTreeView *tree_view)
   GtkStyleContext *context;
 
   context = gtk_widget_get_style_context (GTK_WIDGET (tree_view));
+
+  gtk_style_context_set_background (context, tree_view->priv->bin_window);
+  gtk_style_context_set_background (context, gtk_widget_get_window (GTK_WIDGET (tree_view)));
   gtk_style_context_set_background (context, tree_view->priv->header_window);
 }