X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fnew-fingering-engraver.cc;h=a605f0f4ae7e4f574245c84a054e83b93ec58b93;hb=a1aa03e96f21f72d8a5962f64f3938cc2823f67e;hp=9ae9a9998aa9717145d8ea0c3379df1f1f12ee29;hpb=08560a1b8076630c4fc6cb9b902614d8b74fd6fc;p=lilypond.git diff --git a/lily/new-fingering-engraver.cc b/lily/new-fingering-engraver.cc index 9ae9a9998a..a605f0f4ae 100644 --- a/lily/new-fingering-engraver.cc +++ b/lily/new-fingering-engraver.cc @@ -85,7 +85,7 @@ protected: void New_fingering_engraver::acknowledge_inline_accidental (Grob_info inf) { - accidentals_.push_back(inf.grob ()); + accidentals_.push_back (inf.grob ()); } void @@ -114,15 +114,15 @@ New_fingering_engraver::acknowledge_rhythmic_head (Grob_info inf) else if (ev->in_event_class ("script-event")) add_script (inf.grob (), ev, note_ev); else if (ev->in_event_class ("string-number-event")) - { + { // String numbers are used in calculating harmonics even // when we don't want them displayed. So don't make space // for them if 'stencil is #f Grob *g = make_item ("StringNumber", ev->self_scm ()); if (g->get_property ("stencil") != SCM_BOOL_F) add_fingering (inf.grob (), - ly_symbol2scm ("StringNumber"), &string_numbers_, - ev, note_ev); + ly_symbol2scm ("StringNumber"), &string_numbers_, + ev, note_ev); g->suicide (); // Kill grob created to check stencil } else if (ev->in_event_class ("stroke-finger-event")) @@ -194,8 +194,12 @@ New_fingering_engraver::position_scripts (SCM orientations, vector *scripts) { for (vsize i = 0; i < scripts->size (); i++) - if (stem_ && to_boolean (scripts->at (i).script_->get_property ("add-stem-support"))) - Side_position_interface::add_support (scripts->at (i).script_, stem_); + if (stem_) + { + Side_position_interface::add_support (scripts->at (i).script_, stem_); + if (Grob *flag = unsmob_grob (stem_->get_object ("flag"))) + Side_position_interface::add_support (scripts->at (i).script_, flag); + } /* This is not extremely elegant, but we have to do a little @@ -291,9 +295,8 @@ New_fingering_engraver::position_scripts (SCM orientations, f->set_property ("direction", scm_from_int (hordir)); } - Direction d = DOWN; Drul_array< vector > vertical (down, up); - do + for (DOWN_and_UP (d)) { for (vsize i = 0; i < vertical[d].size (); i++) { @@ -311,7 +314,6 @@ New_fingering_engraver::position_scripts (SCM orientations, f->set_property ("direction", scm_from_int (d)); } } - while (flip (&d) != DOWN); } void