X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fsystem.cc;h=3da78689e33fcc8cdda4b749d3645d68d082a417;hb=c08b39b3b6d45d7517c69cc7d28442c4bcdcc789;hp=f169b8a5d0b18593b1da4b91c37c7c4485cee152;hpb=161be50a3746bc3166de465ee5f815e36c71c2a4;p=lilypond.git 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 ();