]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/page-spacing.cc
Merge branch 'lilypond/translation' of ssh://git.sv.gnu.org/srv/git/lilypond into...
[lilypond.git] / lily / page-spacing.cc
index bb6b5063b9e885a1133c6f8923e840e9b59c3066..4e987e6998f49cc13875ba1de3e971cc7db13a34 100644 (file)
@@ -50,6 +50,8 @@ Page_spacing::append_system (const Line_details &line)
   if (rod_height_)
     {
       rod_height_ += line.tallness_;
+      spring_len_ += last_line_.spring_length (line);
+
     }
   else
     {
@@ -57,13 +59,6 @@ Page_spacing::append_system (const Line_details &line)
       first_line_ = line;
     }
 
-  // line.space_ measures the spring which goes from the bottom refpoint
-  // of one system to the top refpoint of the next. spring_len_ measures
-  // how much of that is stretchable.
-  Real refpoint_dist = last_line_.tallness_
-    + last_line_.refpoint_extent_[DOWN]
-    - line.refpoint_extent_[UP];
-  spring_len_ += max (0.0, line.space_ - refpoint_dist);
   inverse_spring_k_ += line.inverse_hooke_;
 
   last_line_ = line;
@@ -74,17 +69,15 @@ Page_spacing::append_system (const Line_details &line)
 void
 Page_spacing::prepend_system (const Line_details &line)
 {
-  if (!rod_height_)
+  if (rod_height_)
+    spring_len_ += line.spring_length (first_line_);
+  else
     last_line_ = line;
 
   rod_height_ -= first_line_.full_height ();
   rod_height_ += first_line_.tallness_;
   rod_height_ += line.full_height();
 
-  Real refpoint_dist = line.tallness_
-    + line.refpoint_extent_[DOWN]
-    - first_line_.refpoint_extent_[UP];
-  spring_len_ += max (0.0, line.space_ - refpoint_dist);
   inverse_spring_k_ += line.inverse_hooke_;
 
   first_line_ = line;