diff options
author | Li Yuan <li.yuan@sun.com> | 2008-12-12 06:12:27 +0000 |
---|---|---|
committer | Li Yuan <liyuan@src.gnome.org> | 2008-12-12 06:12:27 +0000 |
commit | 185529d2f88a5362bc175787940e3cc44d94ff1f (patch) | |
tree | 6c54c5027ab2471b33a19904e8a3e9d2a6bc834d /modules | |
parent | 2b31f26827550e99836e54455538a5ca10b01cba (diff) | |
download | gtk+-185529d2f88a5362bc175787940e3cc44d94ff1f.tar.gz |
Bug #512743. (gail_tree_view_changed_gtk): Clean cell before go through
2008-12-12 Li Yuan <li.yuan@sun.com>
* gailtreeview.c: Bug #512743.
(gail_tree_view_changed_gtk): Clean cell before go through the info
list, for "changed" signal could come before a "row-deleted".
(clean_cell_info):
Prevent the thread to be scheduled before clean_cell_info
finish its job.
svn path=/trunk/; revision=21872
Diffstat (limited to 'modules')
-rw-r--r-- | modules/other/gail/ChangeLog | 9 | ||||
-rw-r--r-- | modules/other/gail/gailtreeview.c | 4 |
2 files changed, 12 insertions, 1 deletions
diff --git a/modules/other/gail/ChangeLog b/modules/other/gail/ChangeLog index 5157c33b4e..4066062b1d 100644 --- a/modules/other/gail/ChangeLog +++ b/modules/other/gail/ChangeLog @@ -1,3 +1,12 @@ +2008-12-12 Li Yuan <li.yuan@sun.com> + + * gailtreeview.c: Bug #512743. + (gail_tree_view_changed_gtk): Clean cell before go through the info + list, for "changed" signal could come before a "row-deleted". + (clean_cell_info): + Prevent the thread to be scheduled before clean_cell_info + finish its job. + 2008-12-09 Michael Natterer <mitch@imendio.com> * Makefile.am diff --git a/modules/other/gail/gailtreeview.c b/modules/other/gail/gailtreeview.c index b7d6ae00e2..6a8edb4555 100644 --- a/modules/other/gail/gailtreeview.c +++ b/modules/other/gail/gailtreeview.c @@ -2422,6 +2422,8 @@ gail_tree_view_changed_gtk (GtkTreeSelection *selection, tree_selection = gtk_tree_view_get_selection (tree_view); + clean_rows (gailview); + for (l = cell_list; l; l = l->next) { info = (GailTreeViewCellInfo *) (l->data); @@ -3529,7 +3531,7 @@ clean_cell_info (GailTreeView *gailview, if (cell_info->in_use) { obj = G_OBJECT (cell_info->cell); - gail_cell_add_state (cell_info->cell, ATK_STATE_DEFUNCT, TRUE); + gail_cell_add_state (cell_info->cell, ATK_STATE_DEFUNCT, FALSE); g_object_weak_unref (obj, (GWeakNotify) cell_destroyed, cell_info); cell_info->in_use = FALSE; if (!gailview->garbage_collection_pending) { |