]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/note-collision.cc
* lily/side-position-interface.cc: remove add_staff_support ()
[lilypond.git] / lily / note-collision.cc
index 989a9265a97da2dff4b110393773c60bcbd8f35f..50958af832b8d4360f6f30c884f2f4bf110e97ce 100644 (file)
@@ -28,9 +28,9 @@ Note_collision_interface::force_shift_callback (SCM element_smob, SCM axis)
   
    me = me->get_parent (a);
 
-   if (! to_boolean (me->get_grob_property ("collision-done")))
+   if (! to_boolean (me->get_grob_property ("positioning-done")))
     {
-      me->set_grob_property ("collision-done", SCM_BOOL_T);
+      me->set_grob_property ("positioning-done", SCM_BOOL_T);
       do_shifts (me);
     }
   
@@ -203,10 +203,19 @@ check_meshing_chords (Grob*me,
       else if (upball_type > dnball_type)
        wipe_ball = nu;
 
-      if (wipe_ball)
+      if (wipe_ball && wipe_ball->live ())
        {
          wipe_ball->set_grob_property ("transparent", SCM_BOOL_T);
-         wipe_ball->set_grob_property ("molecule", SCM_EOL);     
+         wipe_ball->set_grob_property ("molecule", SCM_EOL);
+
+         if (Grob *d = unsmob_grob (wipe_ball->get_grob_property ("dot")))
+           d->suicide ();
+       }
+
+      if (wipe_ball == 0
+         && unsmob_grob (nd->get_grob_property ("dot")))
+       {
+         unsmob_grob (nd->get_grob_property ("dot"))->suicide ();
        }
     }
   else if (close_half_collide && !touch)
@@ -435,4 +444,4 @@ ADD_INTERFACE (Note_collision_interface, "note-collision-interface",
 "directions and horizontal shifts. Most of the interesting properties "
 "are to be set in @ref{note-column-interface}: these are "
 "@code{force-hshift} and @code{horizontal-shift}. ",
-  "merge-differently-dotted merge-differently-headed collision-done");
+  "merge-differently-dotted merge-differently-headed positioning-done");