]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/new-fingering-engraver.cc
*** empty log message ***
[lilypond.git] / lily / new-fingering-engraver.cc
index 713f84fd02c2f2d5da2dea34fb84e487fa321142..681e61ba4e240a62c8bd3a632d264e2764bcd4cf 100644 (file)
@@ -69,9 +69,9 @@ New_fingering_engraver::acknowledge_grob (Grob_info inf)
       
       SCM arts = note_ev->get_property ("articulations");
 
-      for (SCM s = arts; ly_c_pair_p (s); s = ly_cdr  (s))
+      for (SCM s = arts; scm_is_pair (s); s = scm_cdr  (s))
        {
-         Music * m = unsmob_music (ly_car (s));
+         Music * m = unsmob_music (scm_car (s));
 
          if (!m)
            continue;
@@ -286,24 +286,31 @@ New_fingering_engraver::stop_translation_timestep ()
 {
   if (fingerings_.size ())
     {
+      for (int i = 0;  i < fingerings_.size(); i++)
+       if (stem_ && to_boolean (fingerings_[i].script_->get_property ("add-stem-support")))
+         Side_position_interface::add_support (fingerings_[i].script_, stem_);
       position_scripts ();
       fingerings_.clear ();
     }
   
   for (int i =  articulations_.size (); i--;)
     {
-      Grob *sc = articulations_[i].script_;
+      Grob *script = articulations_[i].script_;
    
       for (int j = heads_.size () ; j--;)
-       Side_position_interface::add_support (sc, heads_[j]);
+       Side_position_interface::add_support (script, heads_[j]);
 
-      if (stem_ && to_dir (sc->get_property ("side-relative-direction")))
-       sc->set_property ("direction-source", stem_->self_scm ());
+      if (stem_ && to_dir (script->get_property ("side-relative-direction")))
+       script->set_property ("direction-source", stem_->self_scm ());
+
+
+      if (stem_ && to_boolean (script->get_property ("add-stem-support")))
+       Side_position_interface::add_support (script, stem_);
       
       if (articulations_[i].follow_into_staff_)
        {
-         sc->add_offset_callback (Side_position_interface::quantised_position_proc, Y_AXIS);
-         sc->set_property ("staff-padding" , SCM_EOL);
+         script->add_offset_callback (Side_position_interface::quantised_position_proc, Y_AXIS);
+         script->set_property ("staff-padding" , SCM_EOL);
        }
     }