From: hanwen Date: Tue, 6 Jan 2004 16:16:38 +0000 (+0000) Subject: * lily/note-collision.cc (check_meshing_chords): if merging heads, X-Git-Tag: release/2.1.7~3 X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=commitdiff_plain;h=8e20d0874a25ee29fc8f6bed6c8a70e72271ddbb;p=lilypond.git * lily/note-collision.cc (check_meshing_chords): if merging heads, then kill the dots too. * lily/system.cc (output_lines): only junk only-prebreak-interface grobs. * lily/system.cc (output_lines): don't suicide Spacing_items. * lily/dot-column.cc (dot_config_badness): new function: select the best scoring dot configuration: dots should go close to the note heads, but be shifted up or down according to conventions. (print_dot_configuration): idem. (shift_one): idem (remove_collision): idem. --- diff --git a/ChangeLog b/ChangeLog index dc0c0120e6..26a58ff624 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-01-06 Han-Wen Nienhuys + * lily/note-collision.cc (check_meshing_chords): if merging heads, + then kill the dots too. + * lily/separating-line-group-engraver.cc (acknowledge_grob): set/unset breakableSeparationItem diff --git a/VERSION b/VERSION index b670bde5b6..c6349e93c4 100644 --- a/VERSION +++ b/VERSION @@ -1,6 +1,6 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=2 MINOR_VERSION=1 -PATCH_LEVEL=6 -MY_PATCH_LEVEL=hwn1 +PATCH_LEVEL=7 +MY_PATCH_LEVEL= diff --git a/lily/dot-column.cc b/lily/dot-column.cc index d492a4580d..cd95dfc039 100644 --- a/lily/dot-column.cc +++ b/lily/dot-column.cc @@ -231,12 +231,14 @@ remove_collision (Dot_configuration &cfg, int p) SCM Dot_column::do_shifts (Grob*me) { - Link_array dots = Pointer_group_interface__extract_grobs (me, (Grob*)0, "dots"); dots.sort (compare_position); - + for (int i = dots.size (); i--;) + if (!dots[i]->live ()) + dots.del (i); + Dot_configuration cfg; for (int i =0;i < dots.size (); i++) { diff --git a/lily/note-collision.cc b/lily/note-collision.cc index ad06f67663..5d9290904b 100644 --- a/lily/note-collision.cc +++ b/lily/note-collision.cc @@ -206,7 +206,16 @@ check_meshing_chords (Grob*me, 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) diff --git a/lily/system.cc b/lily/system.cc index ae06cfc988..983555cbe2 100644 --- a/lily/system.cc +++ b/lily/system.cc @@ -76,7 +76,7 @@ System::output_lines () gh_pair_p (s); s = ly_cdr (s)) { Grob * g = unsmob_grob (ly_car (s)); - if (g->internal_has_interface ("only-prebreak-interface")) + if (g->internal_has_interface (ly_symbol2scm ("only-prebreak-interface"))) { /* Kill no longer needed grobs.