From: Han-Wen Nienhuys Date: Fri, 4 Aug 2006 00:50:21 +0000 (+0000) Subject: * lily/spacing-loose-columns.cc (set_loose_columns): bugfix. X-Git-Tag: cvs/HEAD~189 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=6ddfdaaf1c35e56a70df5eeec444f24adf665ced;p=lilypond.git * lily/spacing-loose-columns.cc (set_loose_columns): bugfix. * lily/spacing-loose-columns.cc (set_loose_columns): rewrite compute loose clique spacing using GraceSpacing/SpacingSpanner. --- diff --git a/ChangeLog b/ChangeLog index 1afba1af89..9f31757b90 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2006-08-04 Han-Wen Nienhuys + * lily/spacing-loose-columns.cc (set_loose_columns): bugfix. + * lily/paper-column.cc (set_system): new function. * lily/spacing-engraver.cc (stop_translation_timestep): store diff --git a/lily/spacing-loose-columns.cc b/lily/spacing-loose-columns.cc index 202cfac668..bae5e99de1 100644 --- a/lily/spacing-loose-columns.cc +++ b/lily/spacing-loose-columns.cc @@ -91,9 +91,27 @@ set_loose_columns (System *which, Column_x_positions const *posns) options.init_from_grob (spacing); bool expand_only = false; - Real base_note_space = Spacing_spanner::note_spacing (spacing, last_col, loose_col, - &options, &expand_only); + Real base_note_space = 0.0; + if (Paper_column::is_musical (last_col) + && Paper_column::is_musical (loose_col)) + base_note_space = Spacing_spanner::note_spacing (spacing, last_col, loose_col, + &options, &expand_only); + else + { + Real fixed, space; + + Spacing_spanner::standard_breakable_column_spacing (spacing, last_col, + loose_col, &fixed, &space, + &options); + + base_note_space = space; + } + + base_note_space = max (base_note_space, + robust_relative_extent (last_col, last_col, X_AXIS)[RIGHT] + - robust_relative_extent (loose_col, loose_col, X_AXIS)[LEFT]); + clique_spacing.push_back (base_note_space); } @@ -111,7 +129,7 @@ set_loose_columns (System *which, Column_x_positions const *posns) right_point = finished_right_column->relative_coordinate (common, X_AXIS); - Real distance_to_next = clique_spacing[j+1]; + Real distance_to_next = clique_spacing[j]; Real my_offset = right_point - distance_to_next;