[Gnucash-changes] r13865 - gnucash/trunk/src/register/ledger-core - Address bug #339288: When deleting a split, ensure the transaction is open

Chris Shoemaker chris at cvs.gnucash.org
Wed Apr 26 23:27:47 EDT 2006


Author: chris
Date: 2006-04-26 23:27:46 -0400 (Wed, 26 Apr 2006)
New Revision: 13865
Trac: http://svn.gnucash.org/trac/changeset/13865

Modified:
   gnucash/trunk/src/register/ledger-core/split-register.c
Log:
  Address bug #339288:  When deleting a split, ensure the transaction is open
  for editing, an redraw the display afterward.


Modified: gnucash/trunk/src/register/ledger-core/split-register.c
===================================================================
--- gnucash/trunk/src/register/ledger-core/split-register.c	2006-04-27 02:52:31 UTC (rev 13864)
+++ gnucash/trunk/src/register/ledger-core/split-register.c	2006-04-27 03:27:46 UTC (rev 13865)
@@ -798,7 +798,6 @@
   Transaction *pending_trans;
   Transaction *trans;
   Split *blank_split;
-  Account *account;
   Split *split;
 
   if (!reg) return;
@@ -825,23 +824,21 @@
 
   gnc_suspend_gui_refresh ();
 
-  /* make a copy of all of the accounts that will be  
-   * affected by this deletion, so that we can update
-   * their register windows after the deletion. */
   trans = xaccSplitGetParent(split);
 
-  account = xaccSplitGetAccount (split);
-
-  xaccSplitDestroy (split);
-
   /* Check pending transaction */
-  if (trans == pending_trans)
-  {
-    info->pending_trans_guid = *guid_null ();
-    pending_trans = NULL;
+  if (trans == pending_trans) {
+      g_assert(xaccTransIsOpen(trans));
+  } else {
+      g_assert(!pending_trans);
+      g_assert(!xaccTransIsOpen(trans));
+      xaccTransBeginEdit(trans);
+      info->pending_trans_guid = *xaccTransGetGUID(trans);
   }
+  xaccSplitDestroy (split);
 
   gnc_resume_gui_refresh ();
+  gnc_split_register_redraw(reg);
 }
 
 void



More information about the gnucash-changes mailing list