]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/staff-spacing.cc
Correction to bug squad rota
[lilypond.git] / lily / staff-spacing.cc
index 00c9abd6dcf16828c55241e997bcb6da2c319bad..d348b10fd7347699ade91628563da97068423f6a 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 2001--2011  Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 2001--2012  Han-Wen Nienhuys <hanwen@xs4all.nl>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -56,17 +56,7 @@ Staff_spacing::optical_correction (Grob *me, Grob *g, Interval bar_height)
       Direction d = get_grob_direction (stem);
       if (Stem::is_normal_stem (stem) && d == DOWN)
         {
-
-          /*
-            can't look at stem-end-position, since that triggers
-            beam slope computations.
-          */
-          Real stem_start = Stem::head_positions (stem) [d];
-          Real stem_end = stem_start
-                          + d * robust_scm2double (stem->get_property ("length"), 7);
-
-          Interval stem_posns (min (stem_start, stem_end),
-                               max (stem_end, stem_start));
+          Interval stem_posns = stem->pure_height (stem, 0, INT_MAX);
 
           stem_posns.intersect (bar_height);
 
@@ -214,6 +204,7 @@ Staff_spacing::get_spacing (Grob *me, Grob *right_col, Real situational_space)
 
   Spring ret (ideal, min_dist);
   ret.set_inverse_stretch_strength (max (0.0, stretchability));
+  ret.set_inverse_compress_strength (max (0.0, ideal - fixed));
   return ret;
 }