From c08b39b3b6d45d7517c69cc7d28442c4bcdcc789 Mon Sep 17 00:00:00 2001 From: Joe Neeman Date: Sun, 24 Oct 2010 11:10:34 -0700 Subject: [PATCH] Include broken items in system pure-height. --- lily/system.cc | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/lily/system.cc b/lily/system.cc index f169b8a5d0..3da78689e3 100644 --- a/lily/system.cc +++ b/lily/system.cc @@ -629,9 +629,23 @@ System::calc_pure_relevant_grobs (SCM smob) for (vsize i = 0; i < elts.size (); ++i) { - if (!Axis_group_interface::has_interface (elts[i]) - && to_boolean (scm_apply_1 (pure_relevant_p, elts[i]->self_scm (), SCM_EOL))) - relevant_grobs.push_back (elts[i]); + if (!Axis_group_interface::has_interface (elts[i])) + { + if (to_boolean (scm_apply_1 (pure_relevant_p, elts[i]->self_scm (), SCM_EOL))) + relevant_grobs.push_back (elts[i]); + + if (Item *it = dynamic_cast (elts[i])) + { + Direction d = LEFT; + do + { + Item *piece = it->find_prebroken_piece (d); + if (piece && to_boolean (scm_apply_1 (pure_relevant_p, piece->self_scm (), SCM_EOL))) + relevant_grobs.push_back (piece); + } + while (flip (&d) != LEFT); + } + } } SCM grobs_scm = Grob_array::make_array (); -- 2.39.2