summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorJonathan Blandford <jrb@gnome.org>2004-04-14 07:49:10 +0000
committerJonathan Blandford <jrb@src.gnome.org>2004-04-14 07:49:10 +0000
commit11eaf5a97cd5182900917f127ebc7ead9d1fd9c7 (patch)
tree62b4c0ad678ff50e0c7c968fe2bc019ea6b343d9 /gtk
parent5d3a68a829cffe56d9d7a50c3523e5de3e7387ad (diff)
downloadgdk-pixbuf-11eaf5a97cd5182900917f127ebc7ead9d1fd9c7.tar.gz
propagate expose events to children.
Wed Apr 14 03:45:39 2004 Jonathan Blandford <jrb@gnome.org> * gtk/gtktreeview.c (gtk_tree_view_expose): propagate expose events to children.
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtktreeview.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index 163b420b4..e8597e5d7 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -3627,7 +3627,28 @@ gtk_tree_view_expose (GtkWidget *widget,
tree_view = GTK_TREE_VIEW (widget);
if (event->window == tree_view->priv->bin_window)
- return gtk_tree_view_bin_expose (widget, event);
+ {
+ gboolean retval;
+ GList *tmp_list;
+
+ retval = gtk_tree_view_bin_expose (widget, event);
+
+ /* We can't just chain up to Container::expose as it will try to send the
+ * event to the headers, so we handle propagating it to our children
+ * (eg. widgets being edited) ourselves.
+ */
+ tmp_list = tree_view->priv->children;
+ while (tmp_list)
+ {
+ GtkTreeViewChild *child = tmp_list->data;
+ tmp_list = tmp_list->next;
+
+ gtk_container_propagate_expose (GTK_CONTAINER (tree_view), child->widget, event);
+ }
+
+ return retval;
+ }
+
else if (event->window == tree_view->priv->header_window)
{
GList *list;