]> git.donarmstrong.com Git - lilypond.git/commitdiff
(position_accidentals): use all
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 22 Apr 2002 16:30:18 +0000 (16:30 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 22 Apr 2002 16:30:18 +0000 (16:30 +0000)
note heads for note head-skyline.

ChangeLog
input/regression/accidental-placement.ly
lily/accidental-placement.cc

index 48dd9bf94282701e07009cadbc6e45f485c5a927..835f00e70c886f673b156b803a234e6fb40810d0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2002-04-22  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
 
+       * lily/accidental-placement.cc (position_accidentals): use all
+       note heads for note head-skyline. 
+
        * scripts/lilypond-book.py (re_dict): remove all *? regexps.
 
 2002-04-22  Jan Nieuwenhuizen  <janneke@gnu.org>
index 2f142c59a065ee5bc12d1e80daeea6b8903ab08a..0b22b665e86d7b47253d8a8f25216690975a9a12 100644 (file)
@@ -10,6 +10,7 @@ Accidentals in corresponding octaves are aligned."
     <bes'! fis!>     
     <bes! cis!>
     <c! es ges beses>
+    <bes! c d f >    
 }
 \paper { linewidth = -1. }
      }
index acac43671a645e77b5b13979c30cd036e5fbd827..5a8693b8abb17b95dd0c138193a46082245d1c74 100644 (file)
@@ -15,7 +15,8 @@ source file of the GNU LilyPond music typesetter
 #include "pitch.hh"
 #include "warn.hh"
 #include "accidental-placement.hh"
-
+#include "note-column.hh"
+#include "group-interface.hh"
 
 MAKE_SCHEME_CALLBACK(Accidental_placement,extent_callback, 2);
 SCM
@@ -160,7 +161,7 @@ Accidental_placement::position_accidentals (Grob * me)
   for (int i= apes.size (); i--;)
     commony = common_refpoint_of_array  (apes[i]->grobs_, commony, Y_AXIS);
 
-  Link_array<Grob> heads;
+  Link_array<Grob> note_cols, heads;
   for (int i= apes.size (); i--;)
     {
       Accidental_placement_entry * ape = apes[i];
@@ -175,11 +176,14 @@ Accidental_placement::position_accidentals (Grob * me)
          b[Y_AXIS] = a->extent (commony, Y_AXIS);
 
          Grob *head = a->get_parent (Y_AXIS);
-         heads.push (head);
-         commony = commony->common_refpoint (head, Y_AXIS);
+
+         Grob * col = head->get_parent (X_AXIS);
+         if (Note_column::has_interface (col))
+           note_cols.push (col);
+         else
+           heads.push (head);
          
          ape->extents_.push (b);
-
          
          /*
            TODO: replace the extents of a flat by combination of two
@@ -190,6 +194,18 @@ Accidental_placement::position_accidentals (Grob * me)
        }
     }
 
+  
+  for (int i = note_cols.size() ; i--;)
+    {
+      heads.concat (Pointer_group_interface__extract_grobs (note_cols[i],
+                                                           (Grob*)0,
+                                                           "note-heads"));
+      
+    }
+  heads.default_sort();
+  heads.uniq();
+  commony = common_refpoint_of_array (heads, commony, Y_AXIS);
+  
   for (int i = apes.size(); i--;)
     {
       Interval y ;