]> git.donarmstrong.com Git - lilypond.git/commitdiff
(get_default_dir): oops. Take abs () for release/2.7.35
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 17 Feb 2006 17:56:55 +0000 (17:56 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 17 Feb 2006 17:56:55 +0000 (17:56 +0000)
extremes[DOWN].
(get_default_dir): use extreme position criterion only in absence
of forced stem directions.

ChangeLog
lily/beam.cc

index 525723edf90c925d0f75aed2b838108f59773c8a..9ca91ad9415b8b3770effb56223feeae341b80e3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
 
        * lily/beam.cc (get_default_dir): oops. Take abs () for
        extremes[DOWN].
+       (get_default_dir): use extreme position criterion only in absence
+       of forced stem directions.
 
        * VERSION (PATCH_LEVEL): bump VERSION.
 
index b3b65301ee83f2707159653f8f7d214e87507094..0fd41be22c15d1b506a59f0f544323aefa8ace14 100644 (file)
@@ -536,21 +536,20 @@ Beam::get_default_dir (Grob *me)
       while (flip (&d) != DOWN);
     }
 
-  if (abs (extremes[UP]) > -extremes[DOWN])
-    return DOWN;
-  else if (extremes[UP] < -extremes[DOWN])
-    return UP;
-
   Drul_array<int> total (0, 0);
   Drul_array<int> count (0, 0);
+
+  bool force_dir = false;
   for (vsize i = 0; i < stems.size (); i++)
     {
       Grob *s = stems[i];
       Direction stem_dir = CENTER;
       SCM stem_dir_scm = s->get_property_data (ly_symbol2scm ("direction"));
       if (is_direction (stem_dir_scm))
-       stem_dir = to_dir (stem_dir_scm);
+       {
+         stem_dir = to_dir (stem_dir_scm);
+         force_dir = true;
+       }
       else
        stem_dir = to_dir (s->get_property ("default-direction"));
 
@@ -564,6 +563,15 @@ Beam::get_default_dir (Grob *me)
        }
     }
 
+
+  if (!force_dir)
+    {
+      if (abs (extremes[UP]) > -extremes[DOWN])
+       return DOWN;
+      else if (extremes[UP] < -extremes[DOWN])
+       return UP;
+    }
+  
   Direction dir = CENTER;
   Direction d = CENTER;
   if ((d = (Direction) sign (count[UP] - count[DOWN])))