X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fspacing-loose-columns.cc;h=bcac6ff4937a1ca9864212e86c247926d9eadbf9;hb=c39d188d28fdc84cef8cbaea7b8d6e2fb718c30f;hp=cc706fb6b0b9f5944753649e254672802333e84c;hpb=943ba7c0e397eacc957cbbc5ad924053407139aa;p=lilypond.git diff --git a/lily/spacing-loose-columns.cc b/lily/spacing-loose-columns.cc index cc706fb6b0..bcac6ff493 100644 --- a/lily/spacing-loose-columns.cc +++ b/lily/spacing-loose-columns.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2005--2011 Han-Wen Nienhuys + Copyright (C) 2005--2014 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -83,7 +83,8 @@ set_loose_columns (System *which, Column_x_positions const *posns) if (!right) { - programming_error ("Can't attach loose column sensibly. Attaching to end of system."); + programming_error ("Can't attach loose column sensibly." + " Attaching to end of system."); right = which->get_bound (RIGHT); } @@ -152,19 +153,14 @@ set_loose_columns (System *which, Column_x_positions const *posns) if (Paper_column::is_musical (next_col) && Paper_column::is_musical (loose_col)) { - Real base = Spacing_spanner::note_spacing (spacing, loose_col, next_col, - &options); + Spring spring = Spacing_spanner::note_spacing (spacing, loose_col, + next_col, &options); if (Note_spacing::has_interface (spacing)) - { - Spring spring = Note_spacing::get_spacing (spacing, next_col, base, options.increment_);; - base_note_space = spring.distance (); - tight_note_space = spring.min_distance (); - } - else - { - base_note_space = base; - tight_note_space = base; - } + spring = Note_spacing::get_spacing (spacing, next_col, + spring, options.increment_); + + base_note_space = spring.distance (); + tight_note_space = spring.min_distance (); } else { @@ -176,6 +172,10 @@ set_loose_columns (System *which, Column_x_positions const *posns) tight_note_space = spring.min_distance (); } + Real loose_col_horizontal_length = loose_col->extent (loose_col, X_AXIS).length (); + base_note_space = max (base_note_space, loose_col_horizontal_length); + tight_note_space = max (tight_note_space, loose_col_horizontal_length); + clique_spacing.push_back (base_note_space); clique_tight_spacing.push_back (tight_note_space); } @@ -188,7 +188,7 @@ set_loose_columns (System *which, Column_x_positions const *posns) Real sum_spacing = 0; // currently a magic number - what would be a good grob to hold this property? Real left_padding = 0.15; - for (vsize j = 0; j < clique_spacing.size (); j++) + for (vsize j = 0; j < clique_spacing.size (); j++) { sum_tight_spacing += clique_tight_spacing[j]; sum_spacing += clique_spacing[j];