[gtk+/rendering-cleanup-next: 37/203] treeview: Invalidate on expander changes, don't just repaint
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/rendering-cleanup-next: 37/203] treeview: Invalidate on expander changes, don't just repaint
- Date: Thu, 23 Sep 2010 10:34:11 +0000 (UTC)
commit 91a0492b56fe06a4bb61b85efd2a06d0e7a6acbf
Author: Benjamin Otte <otte redhat com>
Date: Mon Sep 6 13:27:50 2010 +0200
treeview: Invalidate on expander changes, don't just repaint
Repaints are supposed to be initiated by GDK, not by random repaints.
gtk/gtktreeview.c | 41 ++++++++++++-----------------------------
1 files changed, 12 insertions(+), 29 deletions(-)
---
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index cfa5dd0..4a195f8 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -324,8 +324,7 @@ static void gtk_tree_view_queue_draw_path (GtkTreeView
const GdkRectangle *clip_rect);
static void gtk_tree_view_queue_draw_arrow (GtkTreeView *tree_view,
GtkRBTree *tree,
- GtkRBNode *node,
- const GdkRectangle *clip_rect);
+ GtkRBNode *node);
static void gtk_tree_view_draw_arrow (GtkTreeView *tree_view,
GtkRBTree *tree,
GtkRBNode *node,
@@ -2610,11 +2609,9 @@ gtk_tree_view_button_press (GtkWidget *widget,
gtk_grab_add (widget);
tree_view->priv->button_pressed_node = tree_view->priv->prelight_node;
tree_view->priv->button_pressed_tree = tree_view->priv->prelight_tree;
- gtk_tree_view_draw_arrow (GTK_TREE_VIEW (widget),
- tree_view->priv->prelight_tree,
- tree_view->priv->prelight_node,
- event->x,
- event->y);
+ gtk_tree_view_queue_draw_arrow (GTK_TREE_VIEW (widget),
+ tree_view->priv->prelight_tree,
+ tree_view->priv->prelight_node);
}
grab_focus_and_unset_draw_keyfocus (tree_view);
@@ -3221,7 +3218,7 @@ do_prelight (GtkTreeView *tree_view,
GTK_TREE_VIEW_UNSET_FLAG (tree_view,
GTK_TREE_VIEW_ARROW_PRELIT);
- gtk_tree_view_draw_arrow (tree_view, tree, node, x, y);
+ gtk_tree_view_queue_draw_arrow (tree_view, tree, node);
}
}
@@ -3240,11 +3237,9 @@ do_prelight (GtkTreeView *tree_view,
{
GTK_TREE_VIEW_UNSET_FLAG (tree_view, GTK_TREE_VIEW_ARROW_PRELIT);
- gtk_tree_view_draw_arrow (tree_view,
- tree_view->priv->prelight_tree,
- tree_view->priv->prelight_node,
- x,
- y);
+ gtk_tree_view_queue_draw_arrow (tree_view,
+ tree_view->priv->prelight_tree,
+ tree_view->priv->prelight_node);
}
_gtk_tree_view_queue_draw_node (tree_view,
@@ -3271,7 +3266,7 @@ do_prelight (GtkTreeView *tree_view,
{
GTK_TREE_VIEW_SET_FLAG (tree_view, GTK_TREE_VIEW_ARROW_PRELIT);
- gtk_tree_view_draw_arrow (tree_view, tree, node, x, y);
+ gtk_tree_view_queue_draw_arrow (tree_view, tree, node);
}
GTK_RBNODE_SET_FLAG (node, GTK_RBNODE_IS_PRELIT);
@@ -9445,8 +9440,7 @@ _gtk_tree_view_column_start_drag (GtkTreeView *tree_view,
static void
gtk_tree_view_queue_draw_arrow (GtkTreeView *tree_view,
GtkRBTree *tree,
- GtkRBNode *node,
- const GdkRectangle *clip_rect)
+ GtkRBNode *node)
{
GtkAllocation allocation;
GdkRectangle rect;
@@ -9461,18 +9455,7 @@ gtk_tree_view_queue_draw_arrow (GtkTreeView *tree_view,
rect.y = BACKGROUND_FIRST_PIXEL (tree_view, tree, node);
rect.height = ROW_HEIGHT (tree_view, BACKGROUND_HEIGHT (node));
- if (clip_rect)
- {
- GdkRectangle new_rect;
-
- gdk_rectangle_intersect (clip_rect, &rect, &new_rect);
-
- gdk_window_invalidate_rect (tree_view->priv->bin_window, &new_rect, TRUE);
- }
- else
- {
- gdk_window_invalidate_rect (tree_view->priv->bin_window, &rect, TRUE);
- }
+ gdk_window_invalidate_rect (tree_view->priv->bin_window, &rect, TRUE);
}
void
@@ -12038,7 +12021,7 @@ do_expand_collapse (GtkTreeView *tree_view)
if (redraw)
{
- gtk_tree_view_queue_draw_arrow (tree_view, tree, node, NULL);
+ gtk_tree_view_queue_draw_arrow (tree_view, tree, node);
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]