From: Mike Solomon Date: Mon, 21 Mar 2011 14:20:45 +0000 (-0400) Subject: Fixes accidental suggestions in the beam collision engraver (issue 1570) X-Git-Tag: release/2.13.55-1~4 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=d3024f0823da8c451f61fb1eabdb9a5850c9ad85;p=lilypond.git Fixes accidental suggestions in the beam collision engraver (issue 1570) Adds an inline-accidental-interface that the engraver uses to filter out all accidentals that do not come before a note in the staff. --- diff --git a/input/regression/beam-collision-accidentals.ly b/input/regression/beam-collision-accidentals.ly new file mode 100644 index 0000000000..90238f40f4 --- /dev/null +++ b/input/regression/beam-collision-accidentals.ly @@ -0,0 +1,12 @@ +\version "2.13.47" +\header { + texidoc = "Beams only check for collisions with in-line accidentals." +} + +{ + \set suggestAccidentals = ##t + a'8[ fis'16 g'16] + \unset suggestAccidentals + c'8 [ des'' ] + r2 +} \ No newline at end of file diff --git a/lily/beam-collision-engraver.cc b/lily/beam-collision-engraver.cc index 39e614c2a1..367570ff6d 100644 --- a/lily/beam-collision-engraver.cc +++ b/lily/beam-collision-engraver.cc @@ -160,7 +160,8 @@ Beam_collision_engraver::acknowledge_note_head (Grob_info i) void Beam_collision_engraver::acknowledge_accidental (Grob_info i) { - covered_grobs_.push_back (i.grob ()); + if (i.grob ()->internal_has_interface (ly_symbol2scm ("inline-accidental-interface"))) + covered_grobs_.push_back (i.grob ()); } void diff --git a/scm/define-grob-interfaces.scm b/scm/define-grob-interfaces.scm index 223cdafcf6..edc02a7fb3 100644 --- a/scm/define-grob-interfaces.scm +++ b/scm/define-grob-interfaces.scm @@ -107,6 +107,12 @@ note)." "Keep track of durations in a run of grace notes." '(columns common-shortest-duration)) +(ly:add-interface + 'inline-accidental-interface + "An inlined accidental (i.e. normal accidentals, cautionary +accidentals)." + '()) + (ly:add-interface 'instrument-specific-markup-interface "Instrument-specific markup (like fret boards or harp pedal diagrams)." diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 8b9564f41e..a9b2001772 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -36,6 +36,7 @@ (Y-extent . ,ly:accidental-interface::height) (meta . ((class . Item) (interfaces . (accidental-interface + inline-accidental-interface font-interface)))))) (AccidentalCautionary @@ -48,6 +49,7 @@ (Y-extent . ,ly:accidental-interface::height) (meta . ((class . Item) (interfaces . (accidental-interface + inline-accidental-interface font-interface)))))) (AccidentalPlacement