diff --git a/src/engine/Split.c b/src/engine/Split.c index 1cb0d6f650..ef88c0d03d 100644 --- a/src/engine/Split.c +++ b/src/engine/Split.c @@ -512,8 +512,6 @@ xaccSplitCommitEdit(Split *s) GList *node = g_list_find (orig_acc->splits, s); if (node) { orig_acc->splits = g_list_delete_link (orig_acc->splits, node); - //FIXME: probably not needed. - xaccGroupMarkNotSaved (orig_acc->parent); //FIXME: find better event type qof_event_gen (&orig_acc->inst.entity, QOF_EVENT_MODIFY, NULL); // And send the account-based event, too @@ -539,7 +537,6 @@ xaccSplitCommitEdit(Split *s) if (s->lot && (NULL == s->lot->account)) xaccAccountInsertLot (acc, s->lot); - xaccGroupMarkNotSaved (acc->parent); //FIXME: probably not needed. //FIXME: find better event qof_event_gen (&acc->inst.entity, QOF_EVENT_MODIFY, NULL); @@ -568,6 +565,9 @@ xaccSplitCommitEdit(Split *s) s->orig_parent = s->parent; qof_instance_mark_clean(QOF_INSTANCE(s)); + /* This is because Splits don't call qof_commit_edit(). */ + qof_instance_set_dirty(QOF_INSTANCE(s->parent)); + mark_acc(acc); xaccAccountRecomputeBalance(acc); if (s->inst.do_free) diff --git a/src/engine/Transaction.c b/src/engine/Transaction.c index 1b1098832d..b62a999871 100644 --- a/src/engine/Transaction.c +++ b/src/engine/Transaction.c @@ -219,10 +219,8 @@ void gen_event_trans (Transaction *trans) Account *account = s->acc; GNCLot *lot = s->lot; if (account) - { - xaccGroupMarkNotSaved (account->parent); qof_event_gen (&account->inst.entity, GNC_EVENT_ITEM_CHANGED, s); - } + if (lot) { /* A change of transaction date might affect opening date of lot */ @@ -867,9 +865,7 @@ destroy_gains (Transaction *trans) if (s->gains_split && (GAINS_STATUS_GAINS & s->gains_split->gains)) { Transaction *t = s->gains_split->parent; - xaccTransBeginEdit (t); xaccTransDestroy (t); - xaccTransCommitEdit (t); s->gains_split = NULL; } }