diff --git a/src/SplitLedger.c b/src/SplitLedger.c index 561c9d19a2..de09cd9ca3 100644 --- a/src/SplitLedger.c +++ b/src/SplitLedger.c @@ -990,6 +990,7 @@ LedgerMoveCursor (Table *table, VirtualLocation *p_new_virt_loc) else if (old_trans && (old_trans != new_trans) && !trans_has_reconciled_splits (old_trans) && + !info->first_pass && sr_balance_trans (reg, old_trans)) { /* no matter what, stay there so the user can see what happened */ @@ -1358,6 +1359,9 @@ LedgerTraverse (Table *table, guint32 changed; Split *split; + if (info->first_pass) + return FALSE; + info->exact_traversal = (dir == GNC_TABLE_TRAVERSE_POINTER); split = xaccSRGetCurrentSplit (reg); diff --git a/src/gnome/dialog-transfer.c b/src/gnome/dialog-transfer.c index 2c7da2369d..38767e7e9f 100644 --- a/src/gnome/dialog-transfer.c +++ b/src/gnome/dialog-transfer.c @@ -744,7 +744,7 @@ gnc_xfer_dialog_ok_cb(GtkWidget * widget, gpointer data) xaccAccountBeginEdit(from); xaccAccountInsertSplit(from, from_split); - xaccSplitSetShareAmount(from_split, gnc_numeric_neg (amount)); + xaccSplitSetBaseValue(from_split, gnc_numeric_neg (amount), from_currency); xaccSplitSetBaseValue(curr_split, amount, from_currency); xaccSplitSetBaseValue(curr_split, to_amount, to_currency); @@ -784,7 +784,7 @@ gnc_xfer_dialog_ok_cb(GtkWidget * widget, gpointer data) xaccAccountBeginEdit(curr); xaccAccountInsertSplit(curr, curr_split); - xaccSplitSetShareAmount(to_split, to_amount); + xaccSplitSetBaseValue(to_split, to_amount, to_currency); xaccSplitSetBaseValue(curr_split, gnc_numeric_neg(amount), from_currency); xaccSplitSetBaseValue(curr_split, gnc_numeric_neg(to_amount), to_currency);