]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/paper-column.cc
Merge commit '2799dfc'
[lilypond.git] / lily / paper-column.cc
index d09518a590d8671de27d3502f37e367b83f5b6b5..53dfd4a906a2b907baeb59ced8b2ae998bcd3a7e 100644 (file)
@@ -146,19 +146,15 @@ Paper_column::minimum_distance (Grob *left, Grob *right)
   Direction d = LEFT;
   do
     {
-      extract_grob_set (cols[d], "elements", elts);
-
-      for (vsize i = 0; i < elts.size (); i++)
-       if (Separation_item::has_interface (elts[i]))
-         {
-           Skyline_pair *sp = Skyline_pair::unsmob (elts[i]->get_property ("horizontal-skylines"));
-           if (sp)
-             skys[d].merge ((*sp)[-d]);
-         }
+      Skyline_pair *sp = Skyline_pair::unsmob (cols[d]->get_property ("horizontal-skylines"));
+      if (sp)
+       skys[d] = (*sp)[-d];
     }
   while (flip (&d) != LEFT);
 
-  return min (0.0, skys[LEFT].distance (skys[RIGHT]));
+  skys[RIGHT].merge (Separation_item::conditional_skyline (right, left));
+
+  return max (0.0, skys[LEFT].distance (skys[RIGHT]));
 }
 
 /*
@@ -200,8 +196,9 @@ Paper_column::print (SCM p)
   for (SCM s = me->get_object ("ideal-distances");
        scm_is_pair (s); s = scm_cdr (s))
     {
-      Spring *sp = unsmob_spring (scm_car (s));
-      if (!sp->other_->get_system ())
+      Spring *sp = unsmob_spring (scm_caar (s));
+      if (!unsmob_grob (scm_cdar (s))
+         || !unsmob_grob (scm_cdar (s))->get_system ())
        continue;
       
       j++;