summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Hergert <christian@hergert.me>2015-06-16 16:50:44 -0700
committerChristian Hergert <christian@hergert.me>2015-06-16 18:08:22 -0700
commitfb06b6e4b8cc312f56322b38b91af5b4c726bc33 (patch)
tree6a39a3cf85694dc7876c8bf5b5637721ed049a8e
parent6a2143ab31beaa69fb685a3db6882831fc372cc2 (diff)
downloadgtk+-fb06b6e4b8cc312f56322b38b91af5b4c726bc33.tar.gz
treeview: always pixelcache widget contents
GtkTreeView has a particularly expensive drawing path. This can cause issues when part of animated widget sequences. Caching the content while a model is attached helps reduce the number of full redraws during exposure greatly. https://bugzilla.gnome.org/show_bug.cgi?id=751082
-rw-r--r--gtk/gtktreeview.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index 1e4779f984..5eaed63e53 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -11540,6 +11540,8 @@ gtk_tree_view_set_model (GtkTreeView *tree_view,
if (tree_view->priv->selection)
_gtk_tree_selection_emit_changed (tree_view->priv->selection);
+ _gtk_pixel_cache_set_always_cache (tree_view->priv->pixel_cache, (model != NULL));
+
if (gtk_widget_get_realized (GTK_WIDGET (tree_view)))
gtk_widget_queue_resize (GTK_WIDGET (tree_view));
}