X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fslur-engraver.cc;h=96d22cd759c001f6eff7acb97c54f1ade52fe5a0;hb=8adeb99e344bf047b9b3b9b48a9e97e59e8fc4d3;hp=98f0bbf336fcf779559b49a1c9c9e018b32d2d9c;hpb=bb8a0a5387af94dd2702877256334b160575a730;p=lilypond.git diff --git a/lily/slur-engraver.cc b/lily/slur-engraver.cc index 98f0bbf336..96d22cd759 100644 --- a/lily/slur-engraver.cc +++ b/lily/slur-engraver.cc @@ -51,12 +51,13 @@ class Slur_engraver : public Engraver vector stop_events_; vector slurs_; vector end_slurs_; + vector objects_to_acknowledge_; void set_melisma (bool); protected: DECLARE_TRANSLATOR_LISTENER (slur); - DECLARE_ACKNOWLEDGER (accidental); + DECLARE_ACKNOWLEDGER (inline_accidental); DECLARE_ACKNOWLEDGER (fingering); DECLARE_ACKNOWLEDGER (note_column); DECLARE_ACKNOWLEDGER (script); @@ -110,11 +111,11 @@ Slur_engraver::acknowledge_note_column (Grob_info info) void Slur_engraver::acknowledge_extra_object (Grob_info info) { - Slur::auxiliary_acknowledge_extra_object (info, slurs_, end_slurs_); + objects_to_acknowledge_.push_back (info); } void -Slur_engraver::acknowledge_accidental (Grob_info info) +Slur_engraver::acknowledge_inline_accidental (Grob_info info) { acknowledge_extra_object (info); } @@ -242,12 +243,17 @@ Slur_engraver::stop_translation_timestep () s->set_bound (RIGHT, unsmob_grob (get_property ("currentMusicalColumn"))); announce_end_grob (s, SCM_EOL); } + + for (vsize i = 0; i < objects_to_acknowledge_.size (); i++) + Slur::auxiliary_acknowledge_extra_object (objects_to_acknowledge_[i], slurs_, end_slurs_); + + objects_to_acknowledge_.clear (); end_slurs_.clear (); start_events_.clear (); stop_events_.clear (); } -ADD_ACKNOWLEDGER (Slur_engraver, accidental); +ADD_ACKNOWLEDGER (Slur_engraver, inline_accidental); ADD_ACKNOWLEDGER (Slur_engraver, fingering); ADD_ACKNOWLEDGER (Slur_engraver, note_column); ADD_ACKNOWLEDGER (Slur_engraver, script);