]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/spacing-spanner.cc
Merge branch 'master' of git://git.sv.gnu.org/lilypond
[lilypond.git] / lily / spacing-spanner.cc
index 19739adf6a5ee8ddd520932c33c80750a93f3d99..53d6ef278b1b4b11a468e744edbbb62fea0fd957 100644 (file)
@@ -216,15 +216,25 @@ set_column_rods (vector<Grob*> const &cols, Real padding)
 
   for (vsize i = 1; i < cols.size (); i++)
     {
+      assert (distances.size () == i-1);
+
       Item *r = dynamic_cast<Item*> (cols[i]);
       Item *rb = r->find_prebroken_piece (LEFT);
 
       if (Separation_item::is_empty (r) && (!rb || Separation_item::is_empty (rb)))
-       continue;
+       {
+         distances.push_back (0);
+         continue;
+       }
 
       Skyline_pair *skys = Skyline_pair::unsmob (r->get_property ("horizontal-skylines"));
       Real right_stickout = skys ? (*skys)[LEFT].max_height () : 0.0;
 
+      /* min rather than max because right-stickout will be negative if the right-hand column
+        sticks out a lot to the left */
+      right_stickout = min (right_stickout,
+                           Separation_item::conditional_skyline (r, cols[i-1]).max_height ());
+
       Drul_array<Item*> r_cols (r, rb);
       Drul_array<Real> cur_dist (0.0, 0.0);