X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fbeam-collision-engraver.cc;h=8e397508b79df7aa092516598a6e5df8fcb653b0;hb=f9e17f32c80c9d0cbbc54fe318c7708f62a3a93d;hp=fa829325593d7cd3beb45037bc22267c6ea5ae7c;hpb=8ab3d24f670e1360ba2b85536465278ecb904ec2;p=lilypond.git diff --git a/lily/beam-collision-engraver.cc b/lily/beam-collision-engraver.cc index fa82932559..8e397508b7 100644 --- a/lily/beam-collision-engraver.cc +++ b/lily/beam-collision-engraver.cc @@ -77,6 +77,14 @@ Beam_collision_engraver::finalize () { Grob *beam_grob = beams_[i].grob (); + extract_grob_set (beam_grob, "normal-stems", stems); + Interval_t vertical_span; + for (vsize j = 0; j < stems.size (); j++) + { + int vag = Grob::get_vertical_axis_group_index (stems[j]); + if (vag >= 0) + vertical_span.add_point (vag); + } Context *beam_context = beams_[i].context (); Interval_t beam_spanned_rank_ = beam_grob->spanned_rank_interval (); @@ -88,6 +96,9 @@ Beam_collision_engraver::finalize () for (vsize j = start; j < covered_grobs_.size (); j++) { Grob *covered_grob = covered_grobs_[j].grob (); + int vag = Grob::get_vertical_axis_group_index (covered_grob); + if (!vertical_span.contains (vag)) + continue; Context *covered_grob_context = covered_grobs_[j].context (); Interval_t covered_grob_spanned_rank = covered_grob->spanned_rank_interval ();