]> git.donarmstrong.com Git - lilypond.git/commitdiff
insert rods between spanner bounds and breakable columns too. Fixes #171.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 8 Dec 2006 17:39:31 +0000 (18:39 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 8 Dec 2006 17:39:31 +0000 (18:39 +0100)
lily/spanner.cc

index 0f020202419c494b6bf2db2a639f65c7173d28d2..61051bb9ddd132645c52f71ae06c6668396f476f 100644 (file)
@@ -334,16 +334,33 @@ SCM
 Spanner::set_spacing_rods (SCM smob)
 {
   Grob *me = unsmob_grob (smob);
-
-  Rod r;
-  Spanner *sp = dynamic_cast<Spanner *> (me);
-  r.item_drul_[LEFT] = sp->get_bound (LEFT);
-  r.item_drul_[RIGHT] = sp->get_bound (RIGHT);
-
   SCM num_length = me->get_property ("minimum-length");
   if (scm_is_number (num_length))
     {
+      Rod r;
+      Spanner *sp = dynamic_cast<Spanner *> (me);
+      
+
+      System *root = get_root_system (me);
+      vector<Item*> cols (root->broken_col_range (sp->get_bound (LEFT)->get_column (),
+                                                 sp->get_bound (LEFT)->get_column ()));
+
+      if (cols.size () )
+       {
+         Rod r ;
+         r.item_drul_[LEFT] = sp->get_bound (LEFT);
+         r.item_drul_[RIGHT] =cols[0];
+         r.distance_ = robust_scm2double (num_length, 0);
+         r.add_to_cols ();
+         
+         r.item_drul_[LEFT] = cols.back ();
+         r.item_drul_[RIGHT] = sp->get_bound (RIGHT);
+         r.add_to_cols ();
+       }
+          
       r.distance_ = robust_scm2double (num_length, 0);
+      r.item_drul_[LEFT] = sp->get_bound (LEFT);
+      r.item_drul_[RIGHT] = sp->get_bound (RIGHT);
       r.add_to_cols ();
     }