X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ffingering-engraver.cc;h=56d7b3257eae269451251c1a8926d62e5069a6eb;hb=a0b3946d2e2cfb07ef75db03a7cfc83ca3c9bdf4;hp=a364947b08eb363e02718616aab51a359d07136b;hpb=b27579f3a9b2311232f8eb1f11403f560dcc9b17;p=lilypond.git diff --git a/lily/fingering-engraver.cc b/lily/fingering-engraver.cc index a364947b08..56d7b3257e 100644 --- a/lily/fingering-engraver.cc +++ b/lily/fingering-engraver.cc @@ -41,6 +41,7 @@ protected: DECLARE_TRANSLATOR_LISTENER (fingering); DECLARE_ACKNOWLEDGER (rhythmic_head); DECLARE_ACKNOWLEDGER (stem); + DECLARE_ACKNOWLEDGER (flag); private: void make_script (Direction, Stream_event *, int); @@ -60,6 +61,13 @@ Fingering_engraver::acknowledge_stem (Grob_info inf) Side_position_interface::add_support (fingerings_[i], inf.grob ()); } +void +Fingering_engraver::acknowledge_flag (Grob_info inf) +{ + for (vsize i = 0; i < fingerings_.size (); i++) + Side_position_interface::add_support (fingerings_[i], inf.grob ()); +} + void Fingering_engraver::acknowledge_rhythmic_head (Grob_info inf) { @@ -115,13 +123,10 @@ Fingering_engraver::make_script (Direction d, Stream_event *r, int i) fingering->set_property ("script-priority", scm_from_int (priority)); - if (!is_direction (fingering->get_property_data ("direction"))) - { - if (d) - fingering->set_property ("direction", scm_from_int (d)); - else - fingering->set_property ("direction", scm_from_int (RIGHT)); - } + if (d) + fingering->set_property ("direction", scm_from_int (d)); + else if (!is_direction (fingering->get_property_data ("direction"))) + fingering->set_property ("direction", scm_from_int (UP)); fingerings_.push_back (fingering); } @@ -139,6 +144,7 @@ Fingering_engraver::Fingering_engraver () ADD_ACKNOWLEDGER (Fingering_engraver, rhythmic_head); ADD_ACKNOWLEDGER (Fingering_engraver, stem); +ADD_ACKNOWLEDGER (Fingering_engraver, flag); ADD_TRANSLATOR (Fingering_engraver, /* doc */