]> git.donarmstrong.com Git - lilypond.git/commitdiff
Fixes accidental suggestions in the beam collision engraver (issue 1570)
authorMike Solomon <mike@apollinemike.com>
Mon, 21 Mar 2011 14:20:45 +0000 (10:20 -0400)
committerMike Solomon <mike@apollinemike.com>
Mon, 21 Mar 2011 14:20:45 +0000 (10:20 -0400)
Adds an inline-accidental-interface that the engraver uses to filter out
all accidentals that do not come before a note in the staff.

input/regression/beam-collision-accidentals.ly [new file with mode: 0644]
lily/beam-collision-engraver.cc
scm/define-grob-interfaces.scm
scm/define-grobs.scm

diff --git a/input/regression/beam-collision-accidentals.ly b/input/regression/beam-collision-accidentals.ly
new file mode 100644 (file)
index 0000000..90238f4
--- /dev/null
@@ -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
index 39e614c2a15dea10f3b72f88110959c35dc389a1..367570ff6d0797e9fa382b54c8b814d51a95da4e 100644 (file)
@@ -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
index 223cdafcf62f88a1a840401916883936b81bc793..edc02a7fb3ea911d9f63e77ad3b80ca3b0c6a542 100644 (file)
@@ -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)."
index 8b9564f41e1776e00814887a7d4516b95dba4465..a9b200177245cca87e28f9134faf35b68f64c3a8 100644 (file)
@@ -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