From 164cdde840c75ff40af84c951a4436f94a194ea0 Mon Sep 17 00:00:00 2001 From: Joe Neeman Date: Thu, 12 Nov 2009 15:53:36 -0800 Subject: [PATCH] Fix 790. Use the min distance between loose lines, not the min distance between a loose line and the previous staff. --- ...age-spacing-loose-lines-between-systems.ly | 23 +++++++++++++++++++ lily/page-layout-problem.cc | 6 ++--- 2 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 input/regression/page-spacing-loose-lines-between-systems.ly diff --git a/input/regression/page-spacing-loose-lines-between-systems.ly b/input/regression/page-spacing-loose-lines-between-systems.ly new file mode 100644 index 0000000000..84142c116a --- /dev/null +++ b/input/regression/page-spacing-loose-lines-between-systems.ly @@ -0,0 +1,23 @@ +\version "2.13.7" + +\header { + texidoc = "The vertical spacing engine is not confused by +a loose line below a system followed by a loose line above +the next system." +} + +\paper { + indent = 0 + ragged-right = ##t +} + +\book { + \score { + << + \chords { s1 \break d1 } + \relative c { c1 c1 } + \addlyrics { word } + >> + } +} + diff --git a/lily/page-layout-problem.cc b/lily/page-layout-problem.cc index 29025ba796..5e8d6a70e0 100644 --- a/lily/page-layout-problem.cc +++ b/lily/page-layout-problem.cc @@ -395,14 +395,13 @@ Page_layout_problem::find_system_offsets () if (loose_lines.empty ()) loose_lines.push_back (last_spaceable_line); - loose_lines.push_back (staff); if (staff_idx) loose_line_min_distances.push_back (min_offsets[staff_idx-1] - min_offsets[staff_idx]); else { Real min_dist = 0; - if (last_spaceable_line) - min_dist = Axis_group_interface::minimum_distance (last_spaceable_line, + if (loose_lines.back ()) + min_dist = Axis_group_interface::minimum_distance (loose_lines.back (), staff, Y_AXIS); else // distance to the top margin @@ -410,6 +409,7 @@ Page_layout_problem::find_system_offsets () loose_line_min_distances.push_back (min_dist); } + loose_lines.push_back (staff); } } -- 2.39.2