]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/note-collision.cc
Ensure that skylines always have at least one building in them.
[lilypond.git] / lily / note-collision.cc
index 2fa8ce48814fb6ab00249a53213a7c2bead23a55..23e3f98e018dff05e6c8d662f7765114a7c34348 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 "note-collision.hh"
@@ -319,17 +319,19 @@ check_meshing_chords (Grob *me,
 }
 
 
-MAKE_SCHEME_CALLBACK(Note_collision_interface, calc_positioning_done, 1) 
+MAKE_SCHEME_CALLBACK (Note_collision_interface, calc_positioning_done, 1) 
 SCM
 Note_collision_interface::calc_positioning_done (SCM smob)
 {
-  Grob *me = unsmob_grob (smob);  
+  Grob *me = unsmob_grob (smob);
+  me->set_property ("positioning-done", SCM_BOOL_T);
+  
   Drul_array<vector<Grob*> > cg = get_clash_groups (me);
 
   Direction d = UP;
   do
     {
-      for (vsize i = cg[d].size(); i--; )
+      for (vsize i = cg[d].size (); i--; )
        {
          /*
            Trigger positioning
@@ -424,7 +426,6 @@ Note_collision_interface::get_clash_groups (Grob *me)
 /** This complicated routine moves note columns around horizontally to
     ensure that notes don't clash.
 
-    This should be put into Scheme.
 */
 SCM
 Note_collision_interface::automatic_shift (Grob *me,
@@ -553,6 +554,7 @@ ADD_INTERFACE (Note_collision_interface,
               "@code{force-hshift} and @code{horizontal-shift}.",
 
               /* properties */
+              "ignore-collision "
               "merge-differently-dotted "
               "merge-differently-headed "
               "positioning-done ");