From: Mike Solomon Date: Mon, 9 Jan 2012 09:55:31 +0000 (+0100) Subject: Avoids TupletBracket vs Fingering and TupletBracket vs StringNumber collisions. X-Git-Tag: release/2.15.25-1~19 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=c74f34d7833a8c562f8fd3c742fe342891ca9fb6;p=lilypond.git Avoids TupletBracket vs Fingering and TupletBracket vs StringNumber collisions. Uses the same logic in tuplet-engraver.cc as that used for Scripts. --- diff --git a/input/regression/tuplet-bracket-avoid-fingering.ly b/input/regression/tuplet-bracket-avoid-fingering.ly new file mode 100644 index 0000000000..068cb16f22 --- /dev/null +++ b/input/regression/tuplet-bracket-avoid-fingering.ly @@ -0,0 +1,11 @@ +\version "2.15.24" + +\header { + texidoc = "@code{TupletBracket} grobs avoid @code{Fingering} grobs. +" +} + +\relative d'' { + \override TupletBracket #'direction = #UP + \times 2/3 { d4 a8-4 } +} diff --git a/input/regression/tuplet-bracket-avoid-string-number.ly b/input/regression/tuplet-bracket-avoid-string-number.ly new file mode 100644 index 0000000000..14c6b6e5fd --- /dev/null +++ b/input/regression/tuplet-bracket-avoid-string-number.ly @@ -0,0 +1,11 @@ +\version "2.15.24" + +\header { + texidoc = "@code{TupletBracket} grobs avoid @code{StringNumber} grobs. +" +} + +\relative d'' { + \override TupletBracket #'direction = #UP + \times 2/3 { d4 8 } +} diff --git a/lily/tuplet-engraver.cc b/lily/tuplet-engraver.cc index 0174524f23..1b75bf923c 100644 --- a/lily/tuplet-engraver.cc +++ b/lily/tuplet-engraver.cc @@ -65,6 +65,8 @@ protected: DECLARE_ACKNOWLEDGER (note_column); DECLARE_ACKNOWLEDGER (script); + DECLARE_ACKNOWLEDGER (finger); + DECLARE_ACKNOWLEDGER (string_number); DECLARE_TRANSLATOR_LISTENER (tuplet_span); virtual void finalize (); void start_translation_timestep (); @@ -219,6 +221,28 @@ Tuplet_engraver::acknowledge_script (Grob_info inf) } } +void +Tuplet_engraver::acknowledge_finger (Grob_info inf) +{ + for (vsize j = 0; j < tuplets_.size (); j++) + if (tuplets_[j].bracket_) + { + Item *i = dynamic_cast (inf.grob ()); + Tuplet_bracket::add_script (tuplets_[j].bracket_, i); + } +} + +void +Tuplet_engraver::acknowledge_string_number (Grob_info inf) +{ + for (vsize j = 0; j < tuplets_.size (); j++) + if (tuplets_[j].bracket_) + { + Item *i = dynamic_cast (inf.grob ()); + Tuplet_bracket::add_script (tuplets_[j].bracket_, i); + } +} + void Tuplet_engraver::start_translation_timestep () { @@ -246,6 +270,8 @@ Tuplet_engraver::Tuplet_engraver () ADD_ACKNOWLEDGER (Tuplet_engraver, note_column); ADD_ACKNOWLEDGER (Tuplet_engraver, script); +ADD_ACKNOWLEDGER (Tuplet_engraver, finger); +ADD_ACKNOWLEDGER (Tuplet_engraver, string_number); ADD_TRANSLATOR (Tuplet_engraver, /* doc */ "Catch tuplet events and generate appropriate bracket.",