diff --git a/ChangeLog b/ChangeLog index 910958a635..b6894aae73 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-09-23 Derek Atkins + + * src/ledger-core/split-register*.c: + suspend events around the Commit(). Fixes #347089 when combined + with r14495. + 2006-09-19 Christian Stimming * configure.in: Remove mt940 module completely from the build and diff --git a/src/register/ledger-core/split-register-control.c b/src/register/ledger-core/split-register-control.c index f14d0fa428..9d751cd86d 100644 --- a/src/register/ledger-core/split-register-control.c +++ b/src/register/ledger-core/split-register-control.c @@ -674,10 +674,15 @@ gnc_split_register_auto_completion (SplitRegister *reg, if (auto_trans == NULL) return FALSE; + gnc_suspend_gui_refresh (); + /* now perform the completion */ if ((pending_trans != NULL) && (pending_trans != trans)) { if (gnc_split_register_begin_edit_or_warn(info, trans)) + { + gnc_resume_gui_refresh (); return TRUE; + } if (xaccTransIsOpen (pending_trans)) xaccTransCommitEdit (pending_trans); @@ -685,7 +690,6 @@ gnc_split_register_auto_completion (SplitRegister *reg, } g_assert(xaccTransIsOpen(trans)); pending_trans = trans; - gnc_suspend_gui_refresh (); gnc_copy_trans_onto_trans (auto_trans, trans, FALSE, FALSE); blank_split = NULL; diff --git a/src/register/ledger-core/split-register.c b/src/register/ledger-core/split-register.c index ae97ff3fbf..57cb93fecf 100644 --- a/src/register/ledger-core/split-register.c +++ b/src/register/ledger-core/split-register.c @@ -1366,6 +1366,8 @@ gnc_split_register_save (SplitRegister *reg, gboolean do_commit) if (gnc_split_register_handle_exchange (reg, FALSE)) return TRUE; + gnc_suspend_gui_refresh (); + /* determine whether we should commit the pending transaction */ if (pending_trans != trans) { @@ -1384,12 +1386,14 @@ gnc_split_register_save (SplitRegister *reg, gboolean do_commit) } else { PINFO("beginning edit of trans %p", trans); if (gnc_split_register_begin_edit_or_warn(info, trans)) + { + gnc_resume_gui_refresh (); return FALSE; + } } pending_trans = trans; } g_assert(xaccTransIsOpen(trans)); - gnc_suspend_gui_refresh (); /* If we are committing the blank split, add it to the account now */ if (trans == blank_trans)