From: Joe Neeman Date: Sat, 28 Jul 2007 03:00:14 +0000 (+1000) Subject: Check for cross-staff also in adjacent_pure_heights. X-Git-Tag: release/2.11.29-1~39 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=91c6fc1cb6950a316336a242c6e971e099df8c80;p=lilypond.git Check for cross-staff also in adjacent_pure_heights. Fixes cyclic dependencies with cross-staff beams. --- diff --git a/lily/axis-group-interface.cc b/lily/axis-group-interface.cc index 3e9450c846..4d280ac480 100644 --- a/lily/axis-group-interface.cc +++ b/lily/axis-group-interface.cc @@ -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 (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 ())