]> git.donarmstrong.com Git - lilypond.git/commitdiff
take stems for common refpoint too.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 1 Dec 2006 16:34:47 +0000 (17:34 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 1 Dec 2006 16:39:09 +0000 (17:39 +0100)
(cherry picked from ed5309f28b1efb3943f38d241c54542534b5bd52 commit)

lily/accidental-placement.cc

index db505c694bf845432b84bbddf8596aca18d52ea7..f9cac96ac71d38320369faea4232191f8efced00 100644 (file)
@@ -304,6 +304,20 @@ Accidental_placement::calc_positioning_done (SCM smob)
   uniq (heads);
   common[Y_AXIS] = common_refpoint_of_array (heads, common[Y_AXIS], Y_AXIS);
 
+  vector<Grob *> stems;
+  for (vsize i = 0; i < heads.size  (); i++)
+    {
+      if (Grob *s = Rhythmic_head::get_stem (heads[i]))
+       {
+         stems.push_back (s);
+         common[Y_AXIS] = s->common_refpoint (common[Y_AXIS], Y_AXIS);
+       }
+    }
+
+  vector_sort (stems, less<Grob*> ());
+  uniq (stems);
+  
+
   for (vsize i = apes.size (); i--;)
     {
       Accidental_placement_entry *ape = apes[i];
@@ -340,15 +354,6 @@ Accidental_placement::calc_positioning_done (SCM smob)
     head_extents.push_back (Box (heads[i]->extent (common[X_AXIS], X_AXIS),
                                 heads[i]->extent (common[Y_AXIS], Y_AXIS)));
 
-  vector<Grob *> stems;
-  for (vsize i = 0; i < heads.size  (); i++)
-    {
-      if (Grob *s = Rhythmic_head::get_stem (heads[i]))
-       stems.push_back (s);
-    }
-  
-  vector_sort (stems, less<Grob*> ());
-  uniq (stems);
   for (vsize i = 0; i < stems.size (); i ++)
     {
       int very_large = INT_MAX;