]> git.donarmstrong.com Git - lilypond.git/commitdiff
fix spacing regressions up to spacing-bar-stem.ly
authorJoe Neeman <joeneeman@gmail.com>
Tue, 26 Jun 2007 13:06:45 +0000 (16:06 +0300)
committerJoe Neeman <joeneeman@gmail.com>
Tue, 26 Jun 2007 13:06:45 +0000 (16:06 +0300)
lily/paper-column.cc
lily/spacing-interface.cc

index 56b96469975d71cac75b73346ce54ceee3c108b9..2256d03600c409837379bf3a11b7cb49c408f49e 100644 (file)
@@ -146,6 +146,7 @@ Paper_column::minimum_distance (Grob *left, Grob *right)
   Direction d = LEFT;
   do
     {
+      skys[d].set_minimum_height (0.0);
       extract_grob_set (cols[d], "elements", elts);
 
       for (vsize i = 0; i < elts.size (); i++)
@@ -158,7 +159,7 @@ Paper_column::minimum_distance (Grob *left, Grob *right)
     }
   while (flip (&d) != LEFT);
 
-  return min (0.0, skys[LEFT].distance (skys[RIGHT]));
+  return max (0.0, skys[LEFT].distance (skys[RIGHT]));
 }
 
 /*
index 26b5b9b633d7d9b60df2e784b150054681088120..6b0964df1e664e233ae41eaef28be1904a761a23 100644 (file)
@@ -40,6 +40,8 @@ Spacing_interface::minimum_distance (Grob *me, Grob *right_col)
   Direction d = LEFT;
   do
     {
+      skylines[d].set_minimum_height (0.0);
+
       for (vsize i = 0; i < items[d].size (); i++)
        {
          Grob *g = items[d][i];
@@ -128,8 +130,17 @@ get_note_columns (vector<Grob*> const &elts)
   vector<Item*> ret;
 
   for (vsize i = 0; i < elts.size (); i++)
-    if (Note_column::has_interface (elts[i]))
-      ret.push_back (dynamic_cast<Item*> (elts[i]));
+    {
+      if (Note_column::has_interface (elts[i]))
+       ret.push_back (dynamic_cast<Item*> (elts[i]));
+      else if (Separation_item::has_interface (elts[i]))
+       {
+         extract_grob_set (elts[i], "elements", more_elts);
+         vector<Item*> ncs = get_note_columns (more_elts);
+
+         ret.insert (ret.end (), ncs.begin (), ncs.end ());
+       }
+    }
 
   return ret;
 }