X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Faccidental-engraver.cc;h=910c62d282040d55021db4cca8703f4bcdd0520c;hb=daf9c2c65d29cb29d1e895bc5e4f4f5f63a40924;hp=1b9920673f354b4e973dc6001e190d523e030627;hpb=278b8a09987a041907f1393127b61056a2a69572;p=lilypond.git diff --git a/lily/accidental-engraver.cc b/lily/accidental-engraver.cc index 1b9920673f..910c62d282 100644 --- a/lily/accidental-engraver.cc +++ b/lily/accidental-engraver.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2006 Han-Wen Nienhuys + (c) 1997--2007 Han-Wen Nienhuys Modified 2001--2002 by Rune Zedeler */ @@ -17,6 +17,7 @@ #include "pitch.hh" #include "protected-scm.hh" #include "rhythmic-head.hh" +#include "separation-item.hh" #include "side-position-interface.hh" #include "stream-event.hh" #include "tie.hh" @@ -64,6 +65,7 @@ protected: void acknowledge_arpeggio (Grob_info); void acknowledge_rhythmic_head (Grob_info); void acknowledge_finger (Grob_info); + void acknowledge_note_column (Grob_info); void stop_translation_timestep (); void process_acknowledged (); @@ -81,6 +83,7 @@ public: vector accidentals_; vector ties_; + vector note_columns_; }; /* @@ -368,8 +371,6 @@ Accidental_engraver::create_accidental (Accidental_entry *entry, { Stream_event *note = entry->melodic_; Grob *support = entry->head_; - Pitch *pitch = unsmob_pitch (note->get_property ("pitch")); - bool as_suggestion = to_boolean (entry->origin_->get_property ("suggestAccidentals")); Grob *a = 0; if (as_suggestion) @@ -523,6 +524,10 @@ Accidental_engraver::stop_translation_timestep () } } + if (accidental_placement_) + for (vsize i = 0; i < note_columns_.size (); i++) + Separation_item::add_conditional_item (note_columns_[i], accidental_placement_); + accidental_placement_ = 0; accidentals_.clear (); left_objects_.clear (); @@ -560,6 +565,12 @@ Accidental_engraver::acknowledge_tie (Grob_info info) ties_.push_back (dynamic_cast (info.grob ())); } +void +Accidental_engraver::acknowledge_note_column (Grob_info info) +{ + note_columns_.push_back (info.grob ()); +} + void Accidental_engraver::acknowledge_arpeggio (Grob_info info) { @@ -584,6 +595,7 @@ ADD_ACKNOWLEDGER (Accidental_engraver, arpeggio); ADD_ACKNOWLEDGER (Accidental_engraver, finger); ADD_ACKNOWLEDGER (Accidental_engraver, rhythmic_head); ADD_ACKNOWLEDGER (Accidental_engraver, tie); +ADD_ACKNOWLEDGER (Accidental_engraver, note_column); ADD_TRANSLATOR (Accidental_engraver, @@ -595,8 +607,8 @@ ADD_TRANSLATOR (Accidental_engraver, /* grobs */ "Accidental " - "AccidentalCautionary" - "AccidentalSuggestion", + "AccidentalCautionary " + "AccidentalSuggestion ", /* props */ "autoAccidentals "