]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/spacing-engraver.cc
Merge branch 'jneeman' of git+ssh://jneem@git.sv.gnu.org/srv/git/lilypond into jneeman
[lilypond.git] / lily / spacing-engraver.cc
index 9325451d28a081f404babe33a86018a723927adc..c6fc091de0711f4a4ac31bbff8be752d64bd62f7 100644 (file)
@@ -7,6 +7,7 @@
 */
 
 #include "engraver.hh"
+#include "moment.hh"
 #include "note-spacing.hh"
 #include "paper-column.hh"
 #include "pointer-group-interface.hh"
@@ -89,7 +90,7 @@ IMPLEMENT_TRANSLATOR_LISTENER (Spacing_engraver, spacing_section);
 void
 Spacing_engraver::listen_spacing_section (Stream_event *ev)
 {
-  start_section_ = ev;
+  ASSIGN_EVENT_ONCE (start_section_, ev);
 }
 
 void
@@ -107,6 +108,7 @@ Spacing_engraver::start_spanner ()
 {
   assert (!spacing_);
 
+
   spacing_ = make_spanner ("SpacingSpanner", SCM_EOL);
   spacing_->set_bound (LEFT,
                       unsmob_grob (get_property ("currentCommandColumn")));
@@ -170,11 +172,20 @@ Spacing_engraver::stop_translation_timestep ()
   Paper_column *musical_column
     = dynamic_cast<Paper_column *> (unsmob_grob (get_property ("currentMusicalColumn")));
 
+
+  if (!spacing_)
+    start_spanner ();
+
+  musical_column->set_object ("spacing", spacing_->self_scm ());
+  unsmob_grob (get_property ("currentCommandColumn"))
+    ->set_object ("spacing", spacing_->self_scm ());
+  
   SCM proportional = get_property ("proportionalNotationDuration");
   if (unsmob_moment (proportional))
     {
       musical_column->set_property ("shortest-playing-duration", proportional);
       musical_column->set_property ("shortest-starter-duration", proportional);
+      musical_column->set_property ("used", SCM_BOOL_T);
       return;
     }
 
@@ -213,6 +224,8 @@ Spacing_engraver::stop_translation_timestep ()
   musical_column->set_property ("shortest-starter-duration", st);
 }
 
+
+
 void
 Spacing_engraver::start_translation_timestep ()
 {
@@ -236,8 +249,6 @@ ADD_TRANSLATOR (Spacing_engraver,
                "bookkeeping of shortest starting and playing notes  ",
 
                /* create */ "SpacingSpanner",
-               /* accept */
-               "spacing-section-event ",
                /* read */
                "currentMusicalColumn "
                "currentCommandColumn "