]> git.donarmstrong.com Git - lilypond.git/commitdiff
Check for cross-staff also in adjacent_pure_heights.
authorJoe Neeman <joeneeman@gmail.com>
Sat, 28 Jul 2007 03:00:14 +0000 (13:00 +1000)
committerJoe Neeman <joeneeman@gmail.com>
Sat, 28 Jul 2007 03:00:14 +0000 (13:00 +1000)
Fixes cyclic dependencies with cross-staff beams.

lily/axis-group-interface.cc

index 3e9450c846139f977af064db4ba1f596ae15f01c..4d280ac4802eb64dadd8833c08209564082ca430 100644 (file)
@@ -90,6 +90,9 @@ Axis_group_interface::cached_pure_height (Grob *me, int start, int end)
 
   SCM extents = me->get_property ("adjacent-pure-heights");
 
+  if (!scm_is_vector (extents))
+    return Interval (0, 0);
+
   Interval ext;
   for (vsize i = 0; i + 1 < breaks.size (); i++)
     {
@@ -131,7 +134,8 @@ Axis_group_interface::adjacent_pure_heights (SCM smob)
          Item *it = dynamic_cast<Item*> (items[j]);
          int rank = it->get_column ()->get_rank ();
 
-         if (rank <= end && it->pure_is_visible (start, end))
+         if (rank <= end && it->pure_is_visible (start, end)
+             && !to_boolean (it->get_property ("cross-staff")))
            {
              Interval dims = items[j]->pure_height (common, start, end);
              if (!dims.is_empty ())