X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fnote-collision.cc;h=50958af832b8d4360f6f30c884f2f4bf110e97ce;hb=33f2e59ea0b2a1ba41e943b5afa29e5fee97ba94;hp=989a9265a97da2dff4b110393773c60bcbd8f35f;hpb=1036b837e5c947284f1b64029b912793edab3dad;p=lilypond.git diff --git a/lily/note-collision.cc b/lily/note-collision.cc index 989a9265a9..50958af832 100644 --- a/lily/note-collision.cc +++ b/lily/note-collision.cc @@ -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");