]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/slur-engraver.cc
Fix 1805: Ignore AmbitusAccidental in slur/phrasing slur engraving
[lilypond.git] / lily / slur-engraver.cc
index 98f0bbf336fcf779559b49a1c9c9e018b32d2d9c..96d22cd759c001f6eff7acb97c54f1ade52fe5a0 100644 (file)
@@ -51,12 +51,13 @@ class Slur_engraver : public Engraver
   vector<Stream_event *> stop_events_;
   vector<Grob *> slurs_;
   vector<Grob *> end_slurs_;
+  vector<Grob_info> 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);