]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/new-dynamic-engraver.cc
Doc-it: chapter 1 completed
[lilypond.git] / lily / new-dynamic-engraver.cc
index 3554b22e9ee00a290fabdf0c47eb8245e3e5f74a..cd7db644a66f409ebdc46f3ee151a76f870fc010 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2008--2011 Han-Wen Nienhuys <hanwen@lilypond.org>
+  Copyright (C) 2008--2012 Han-Wen Nienhuys <hanwen@lilypond.org>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -242,7 +242,7 @@ string
 New_dynamic_engraver::get_spanner_type (Stream_event *ev)
 {
   string type;
-  SCM start_sym = ev->get_property ("class");
+  SCM start_sym = scm_car (ev->get_property ("class"));
 
   if (start_sym == ly_symbol2scm ("decrescendo-event"))
     type = "decrescendo";
@@ -260,6 +260,7 @@ New_dynamic_engraver::acknowledge_note_column (Grob_info info)
   if (script_ && !script_->get_parent (X_AXIS))
     {
       extract_grob_set (info.grob (), "note-heads", heads);
+      Grob *stem = unsmob_grob (info.grob ()->get_object ("stem"));
       /*
         Spacing constraints may require dynamics to be aligned on rests,
         so check for a rest if this note column has no note heads.
@@ -272,6 +273,8 @@ New_dynamic_engraver::acknowledge_note_column (Grob_info info)
           script_->set_parent (x_parent, X_AXIS);
           Self_alignment_interface::set_center_parent (script_, X_AXIS);
         }
+      if (stem)
+        Pointer_group_interface::add_grob (script_, ly_symbol2scm ("potential-X-colliding-grobs"), stem);
     }
 
   if (current_spanner_ && !current_spanner_->get_bound (LEFT))