From: Joe Neeman Date: Sun, 24 Oct 2010 18:10:34 +0000 (-0700) Subject: Include broken items in system pure-height. X-Git-Tag: release/2.13.37-1~12 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=c08b39b3b6d45d7517c69cc7d28442c4bcdcc789;hp=161be50a3746bc3166de465ee5f815e36c71c2a4;p=lilypond.git Include broken items in system pure-height. --- 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 ();