]> git.donarmstrong.com Git - lilypond.git/commitdiff
* lily/note-collision.cc (check_meshing_chords): if merging heads,
authorhanwen <hanwen>
Tue, 6 Jan 2004 16:16:38 +0000 (16:16 +0000)
committerhanwen <hanwen>
Tue, 6 Jan 2004 16:16:38 +0000 (16:16 +0000)
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.

ChangeLog
VERSION
lily/dot-column.cc
lily/note-collision.cc
lily/system.cc

index dc0c0120e692b87d0ece1a782b25c3d37d1b2bdd..26a58ff6247b229bc5d381806be2ba3ace203acb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2004-01-06  Han-Wen Nienhuys   <hanwen@xs4all.nl>
 
+       * 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 b670bde5b604cf19797576c4714b52538fb7ebd2..c6349e93c496bb32641e5975187ebada3b14c6b8 100644 (file)
--- 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=
 
index d492a4580d745f70811f5e98e596fb3c2ca3efd5..cd95dfc0396acf5333d661cb764cb98c8af9a47a 100644 (file)
@@ -231,12 +231,14 @@ remove_collision (Dot_configuration &cfg, int p)
 SCM
 Dot_column::do_shifts (Grob*me)
 {
-  
   Link_array<Grob> 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++)
     {
index ad06f67663a9c146a6ba9d14c7670fe35e61f422..5d9290904bffd7adb846e6a68c6875072f5e48e3 100644 (file)
@@ -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)
index ae06cfc9881616c3cfc35d71a16a6e58122febb8..983555cbe2c2393c7674ab7c56dacb9a0d009b3f 100644 (file)
@@ -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.