From c74f34d7833a8c562f8fd3c742fe342891ca9fb6 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Mon, 9 Jan 2012 10:55:31 +0100 Subject: [PATCH] Avoids TupletBracket vs Fingering and TupletBracket vs StringNumber collisions. Uses the same logic in tuplet-engraver.cc as that used for Scripts. --- .../tuplet-bracket-avoid-fingering.ly | 11 ++++++++ .../tuplet-bracket-avoid-string-number.ly | 11 ++++++++ lily/tuplet-engraver.cc | 26 +++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 input/regression/tuplet-bracket-avoid-fingering.ly create mode 100644 input/regression/tuplet-bracket-avoid-string-number.ly 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.", -- 2.39.5