]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/stem-engraver.cc
(print): always start from right edge of
[lilypond.git] / lily / stem-engraver.cc
index 386447ab03ad65401ea281d325ce3f90d710180c..c6bcb46c78f21ad288346b2fd15c8fda8ef31202 100644 (file)
@@ -31,7 +31,6 @@ class Stem_engraver : public Engraver
   TRANSLATOR_DECLARATIONS (Stem_engraver);
 
 protected:
-  void add_script (Grob *);
   void make_stem (Grob_info);
   virtual void acknowledge_grob (Grob_info);
   virtual void stop_translation_timestep ();
@@ -53,6 +52,10 @@ Stem_engraver::make_stem (Grob_info gi)
      stem needs a rhythmic structure to fit it into a beam.  */
   stem_ = make_item ("Stem", gi.music_cause ()->self_scm ());
 
+  /*
+    docme: why do we take duration-log from request, not from note
+    head?
+   */
   int duration_log = gi.music_cause ()->duration_log ();
   stem_->set_property ("duration-log", scm_int2num (duration_log));
 
@@ -100,19 +103,6 @@ Stem_engraver::make_stem (Grob_info gi)
     }
 }
 
-void
-Stem_engraver::add_script (Grob *script)
-{
-  Direction d = get_grob_direction (script);
-  if (d == UP || d == DOWN)
-    {
-      char const *property = d == UP ? "script-up" : "script-down";
-      stem_->set_property (property,
-                          scm_cons (script->self_scm (),
-                                    stem_->get_property (property)));
-    }
-}
-
 void
 Stem_engraver::acknowledge_grob (Grob_info gi)
 {
@@ -120,11 +110,15 @@ Stem_engraver::acknowledge_grob (Grob_info gi)
     {
       if (Rhythmic_head::get_stem (gi.grob_))
        return;
+
+      Music * cause = gi.music_cause ();
+      if (!cause)
+       return ;
       
       if (!stem_)
        make_stem (gi);
       
-      int duration_log = gi.music_cause ()->duration_log ();
+      int duration_log = cause->duration_log ();
       if (Stem::duration_log (stem_) != duration_log)
        {
          // FIXME: 
@@ -135,8 +129,6 @@ Stem_engraver::acknowledge_grob (Grob_info gi)
 
       Stem::add_head (stem_, gi.grob_);
     }
-  else if (Script_interface::has_interface (gi.grob_))
-    add_script (gi.grob_);
 }
 
 void