From 42b63f2fc516a4ce386c83a514748369ef190195 Mon Sep 17 00:00:00 2001
From: Tobias Schmidt <tobias.schmidt@unibas.ch>
Date: Fri, 29 Jul 2011 17:56:16 +0200
Subject: [PATCH] ICS was not updated properly after connecting atoms

---
 modules/mol/base/src/editor_base.cc | 1 +
 modules/mol/base/tests/test_ics.cc  | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/modules/mol/base/src/editor_base.cc b/modules/mol/base/src/editor_base.cc
index d9f460994..588c7cf99 100644
--- a/modules/mol/base/src/editor_base.cc
+++ b/modules/mol/base/src/editor_base.cc
@@ -217,6 +217,7 @@ void EditorBase::UpdateTrace()
 {
   if (mode_==UNBUFFERED_EDIT) {
     ent_.Impl()->TraceDirectionality();
+    ent_.Impl()->UpdateICSIfNeeded();
   }
 }
 
diff --git a/modules/mol/base/tests/test_ics.cc b/modules/mol/base/tests/test_ics.cc
index f7ffd3722..0b19877c8 100644
--- a/modules/mol/base/tests/test_ics.cc
+++ b/modules/mol/base/tests/test_ics.cc
@@ -103,6 +103,13 @@ bool test_angle(Real a, Real e) {
 
 BOOST_AUTO_TEST_SUITE( mol_base )
 
+BOOST_AUTO_TEST_CASE(ics_update_icsbondlength)
+{
+  TorsionStructure s;
+  mol::BondHandle bond = s.a2.FindBondToAtom(s.a3);
+  BOOST_CHECK_CLOSE(bond.GetLength(), 1.0, EPSILON);
+}
+
 BOOST_AUTO_TEST_CASE(ics_settorsion_unbuffered)
 {
   Real eps = 0.0001;
-- 
GitLab