diff options
author | Federico Mena Quintero <federico@ximian.com> | 2001-08-02 11:27:59 +0800 |
---|---|---|
committer | Federico Mena Quintero <federico@src.gnome.org> | 2001-08-02 11:27:59 +0800 |
commit | 342880e798defc90709e5e7cf97f89be71eab188 (patch) | |
tree | d33e29f9bcc9f1ace87681d3d28fd9ee67e30609 | |
parent | 9092b9ca26d8c3757b959ed826105e0e70de596b (diff) | |
download | gsoc2013-evolution-342880e798defc90709e5e7cf97f89be71eab188.tar.gz gsoc2013-evolution-342880e798defc90709e5e7cf97f89be71eab188.tar.zst gsoc2013-evolution-342880e798defc90709e5e7cf97f89be71eab188.zip |
Set the et->cursor_loc *before* committing the click-to-add to avoid
2001-08-01 Federico Mena Quintero <federico@ximian.com>
* e-table.c (group_cursor_change): Set the et->cursor_loc *before*
committing the click-to-add to avoid reentrancy issues if the
table model changes while the click-to-add is being committed.
svn path=/trunk/; revision=11564
-rw-r--r-- | widgets/table/e-table.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/widgets/table/e-table.c b/widgets/table/e-table.c index a11d940bfe..83296059c8 100644 --- a/widgets/table/e-table.c +++ b/widgets/table/e-table.c @@ -430,13 +430,17 @@ click_to_add_cursor_change (ETableClickToAdd *etcta, int row, int col, ETable *e static void group_cursor_change (ETableGroup *etg, int row, ETable *et) { - if (et->cursor_loc == E_TABLE_CURSOR_LOC_ETCTA && et->click_to_add) { - e_table_click_to_add_commit(E_TABLE_CLICK_TO_ADD(et->click_to_add)); - } + ETableCursorLoc old_cursor_loc; + + old_cursor_loc = et->cursor_loc; + et->cursor_loc = E_TABLE_CURSOR_LOC_TABLE; gtk_signal_emit (GTK_OBJECT (et), et_signals [CURSOR_CHANGE], row); + + if (old_cursor_loc == E_TABLE_CURSOR_LOC_ETCTA && et->click_to_add) + e_table_click_to_add_commit(E_TABLE_CLICK_TO_ADD(et->click_to_add)); } static void |