X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fphrasing-slur-engraver.cc;h=c1261f3066eab33adc8171b28dd5a9b7fcb0c95c;hb=da79a6c8ed0b9ea5bcb3f344df6419c9bdb87e5b;hp=d9c6e3e03910d7560f2cb008c99b449f734691be;hpb=c4c0ba811cd526f047de3f4d3c77abcc32a3e076;p=lilypond.git diff --git a/lily/phrasing-slur-engraver.cc b/lily/phrasing-slur-engraver.cc index d9c6e3e039..c1261f3066 100644 --- a/lily/phrasing-slur-engraver.cc +++ b/lily/phrasing-slur-engraver.cc @@ -23,8 +23,17 @@ It is possible that a slur starts and ends on the same note. At least, it is for phrasing slurs: a note can be both beginning and ending of a phrase. + */ +/* + NOTE NOTE NOTE + + This is largely similar to Slur_engraver. Check if fixes apply there too. + + (on principle, engravers don't use inheritance for code sharing) + + */ class Phrasing_slur_engraver : public Engraver { Drul_array events_; @@ -66,9 +75,9 @@ Phrasing_slur_engraver::listen_phrasing_slur (Stream_event *ev) */ Direction d = to_dir (ev->get_property ("span-direction")); if (d == START) - events_[START] = ev; + ASSIGN_EVENT_ONCE (events_[START], ev); else if (d == STOP && !slurs_.empty ()) - events_[STOP] = ev; + ASSIGN_EVENT_ONCE (events_[STOP], ev); } void @@ -108,7 +117,8 @@ Phrasing_slur_engraver::acknowledge_fingering (Grob_info info) void Phrasing_slur_engraver::acknowledge_script (Grob_info info) { - acknowledge_extra_object (info); + if (!info.grob ()->internal_has_interface (ly_symbol2scm ("dynamic-interface"))) + acknowledge_extra_object (info); } void @@ -168,7 +178,7 @@ Phrasing_slur_engraver::stop_translation_timestep () ADD_ACKNOWLEDGER (Phrasing_slur_engraver, accidental); ADD_ACKNOWLEDGER (Phrasing_slur_engraver, dynamic_line_spanner); ADD_ACKNOWLEDGER (Phrasing_slur_engraver, fingering) - ADD_ACKNOWLEDGER (Phrasing_slur_engraver, note_column); +ADD_ACKNOWLEDGER (Phrasing_slur_engraver, note_column); ADD_ACKNOWLEDGER (Phrasing_slur_engraver, script); ADD_ACKNOWLEDGER (Phrasing_slur_engraver, slur); ADD_ACKNOWLEDGER (Phrasing_slur_engraver, text_script); @@ -177,6 +187,5 @@ ADD_ACKNOWLEDGER (Phrasing_slur_engraver, tie); ADD_TRANSLATOR (Phrasing_slur_engraver, /* doc */ "Print phrasing slurs. Similar to @ref{Slur_engraver}", /* create */ "PhrasingSlur", - /* accept */ "phrasing-slur-event", /* read */ "", /* write */ "");