]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/vertical-align-engraver.cc
Fix issue 542: Harden Grob::relative_coordinate()
[lilypond.git] / lily / vertical-align-engraver.cc
index cbd79dad9acfba8556eb8069fe20834caca27173..f3cc50d6cfc759ff7c1d313a56e542c8228d4b22 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  (c) 1997--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
 */
 
 #include "context.hh"
@@ -37,10 +37,13 @@ protected:
 
 ADD_ACKNOWLEDGER (Vertical_align_engraver, axis_group);
 ADD_TRANSLATOR (Vertical_align_engraver,
-               "Catch groups (staffs, lyrics lines, etc.) and stack "
+               "Catch groups (staves, lyrics lines, etc.) and stack "
                "them vertically.",
                /* create */ "VerticalAlignment",
-               /* read */ "alignAboveContext alignBelowContext",
+               /* read */
+               "alignAboveContext "
+               "alignBelowContext ",
+
                /* write */ "");
 
 Vertical_align_engraver::Vertical_align_engraver ()
@@ -89,6 +92,7 @@ Vertical_align_engraver::qualifies (Grob_info i) const
 
   return sz > 0 && Axis_group_interface::has_interface (i.grob ())
     && !i.grob ()->get_parent (Y_AXIS)
+    && !to_boolean (i.grob ()->get_property ("no-alignment"))
     && Axis_group_interface::has_axis (i.grob (), Y_AXIS);
 }
 
@@ -99,7 +103,7 @@ Vertical_align_engraver::acknowledge_axis_group (Grob_info i)
     {
       string id = i.context ()->id_string ();
 
-      scm_hash_set_x (id_to_group_hashtab_, scm_makfrom0str (id.c_str ()),
+      scm_hash_set_x (id_to_group_hashtab_, ly_string2scm (id),
                      i.grob ()->self_scm ());
 
       SCM before_id = i.context ()->get_property ("alignAboveContext");