source file of the GNU LilyPond music typesetter
- (c) 1997--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "warn.hh"
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);
}
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)
{
Grob * se = unsmob_grob (ly_car (s));
- SCM force = se->remove_grob_property ("force-hshift");
+ SCM force = se->get_grob_property ("force-hshift");
if (gh_number_p (force))
{
tups = gh_cons (gh_cons (se->self_scm (), force),
ADD_INTERFACE (Note_collision_interface, "note-collision-interface",
- "An object that handles collisions between notes with different stem
-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");
+ "An object that handles collisions between notes with different stem "
+"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 positioning-done");