]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/spacing-spanner.cc
Handle situations that either one of above and below is a valid
[lilypond.git] / lily / spacing-spanner.cc
index 8e613e695a1303ef20ed8208cf542bab83f039c4..0395506bbcb79dbecc9e1423e08bcee9d821bdc0 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 1999--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 1999--2011 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
@@ -49,8 +49,8 @@ Spacing_spanner::get_columns (Grob *me_grob)
   vsize end = binary_search (all, (Grob*) me->get_bound (RIGHT),
                             &Paper_column::less_than);  
   
-  all = vector<Grob*>::vector<Grob*> (all.begin () + start,
-                                     all.begin () + end + 1);
+  all = vector<Grob*> (all.begin () + start,
+                      all.begin () + end + 1);
   return all;
 }
 
@@ -271,7 +271,7 @@ set_column_rods (vector<Grob*> const &cols, Real padding)
              bool touches = right_stickout - left_stickout + cur_dist[d] < 0.0;
              Real dist = 0.0;
 
-             /* we set a distance for the line-starter column even if it's non-broken counterpart
+             /* we set a distance for the line-starter column even if its non-broken counterpart
                 doesn't touch the right column. */
              if (lb)
                Separation_item::set_distance (lb, r_col, padding);
@@ -285,6 +285,7 @@ set_column_rods (vector<Grob*> const &cols, Real padding)
              if (j == i-1)
                cur_dist[d] = distances[j];
 
+             cur_dist[d] = max (cur_dist[d], dist);
              done = done && !touches;
            }
          while (flip (&d) != LEFT && rb);
@@ -539,7 +540,7 @@ Spacing_spanner::breakable_column_spacing (Grob *me, Item *l, Item *r,
     {
       Real full_measure_extra_space = robust_scm2double (l->get_property ("full-measure-extra-space"), 1.0);
       spring.set_distance (spring.distance () + full_measure_extra_space);
-      spring.set_default_strength ();
+      spring.set_default_compress_strength ();
     }
   
   if (options->stretch_uniformly_ && l->break_status_dir () != RIGHT)