X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fdynamic-align-engraver.cc;h=37f93cd5c4dce99bae0716661f99beee03440d9c;hb=85d4958c021936c64b6ef9d514a6a2b0d269cc58;hp=92736e0316a02350fdaa2db4ce091fb335502acc;hpb=4a401ca1c60f428daa242dbdd102fdb3f327ebfb;p=lilypond.git diff --git a/lily/dynamic-align-engraver.cc b/lily/dynamic-align-engraver.cc index 92736e0316..37f93cd5c4 100644 --- a/lily/dynamic-align-engraver.cc +++ b/lily/dynamic-align-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2008--2011 Han-Wen Nienhuys + Copyright (C) 2008--2012 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify @@ -34,7 +34,8 @@ class Dynamic_align_engraver : public Engraver { TRANSLATOR_DECLARATIONS (Dynamic_align_engraver); - DECLARE_ACKNOWLEDGER (note_column); + DECLARE_ACKNOWLEDGER (rhythmic_head); + DECLARE_ACKNOWLEDGER (stem); DECLARE_ACKNOWLEDGER (dynamic); DECLARE_ACKNOWLEDGER (footnote_spanner); DECLARE_END_ACKNOWLEDGER (dynamic); @@ -64,7 +65,8 @@ Dynamic_align_engraver::Dynamic_align_engraver () } ADD_ACKNOWLEDGER (Dynamic_align_engraver, dynamic); -ADD_ACKNOWLEDGER (Dynamic_align_engraver, note_column); +ADD_ACKNOWLEDGER (Dynamic_align_engraver, rhythmic_head); +ADD_ACKNOWLEDGER (Dynamic_align_engraver, stem); ADD_ACKNOWLEDGER (Dynamic_align_engraver, footnote_spanner); ADD_END_ACKNOWLEDGER (Dynamic_align_engraver, dynamic); @@ -107,7 +109,13 @@ Dynamic_align_engraver::acknowledge_footnote_spanner (Grob_info info) } void -Dynamic_align_engraver::acknowledge_note_column (Grob_info info) +Dynamic_align_engraver::acknowledge_rhythmic_head (Grob_info info) +{ + support_.push_back (info.grob ()); +} + +void +Dynamic_align_engraver::acknowledge_stem (Grob_info info) { support_.push_back (info.grob ()); } @@ -158,8 +166,8 @@ Dynamic_align_engraver::set_spanner_bounds (Spanner *line, bool end) { if (!line) return; - Direction d = LEFT; - do + + for (LEFT_and_RIGHT (d)) { if ((d == LEFT && !line->get_bound (LEFT)) || (end && d == RIGHT && !line->get_bound (RIGHT))) @@ -181,7 +189,6 @@ Dynamic_align_engraver::set_spanner_bounds (Spanner *line, bool end) line->set_bound (d, bound); } } - while (flip (&d) != LEFT); } void