From f46bf63b68bac25a5384ce5de93d0d92b9651d5f Mon Sep 17 00:00:00 2001 From: Joe Neeman Date: Tue, 26 Dec 2006 23:48:57 +0200 Subject: [PATCH] Fix pure-estimation during two-pass spacing. --- lily/align-interface.cc | 6 +++++- lily/include/system.hh | 1 + lily/system.cc | 11 +++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lily/align-interface.cc b/lily/align-interface.cc index 07c9ebe3c9..89d2648ae2 100644 --- a/lily/align-interface.cc +++ b/lily/align-interface.cc @@ -14,6 +14,7 @@ #include "hara-kiri-group-spanner.hh" #include "grob-array.hh" #include "international.hh" +#include "system.hh" #include "warn.hh" /* @@ -216,7 +217,10 @@ Align_interface::get_extents_aligned_translates (Grob *me, SCM line_break_details = SCM_EOL; if (a == Y_AXIS && me_spanner) { - line_break_details = me_spanner->get_bound (LEFT)->get_property ("line-break-system-details"); + if (pure) + line_break_details = get_root_system (me)->column (start)->get_property ("line-break-system-details"); + else + line_break_details = me_spanner->get_bound (LEFT)->get_property ("line-break-system-details"); if (!me->get_system () && !pure) me->warning (_ ("vertical alignment called before line-breaking.\n" diff --git a/lily/include/system.hh b/lily/include/system.hh index e1a91bf4fa..44bb21d516 100644 --- a/lily/include/system.hh +++ b/lily/include/system.hh @@ -45,6 +45,7 @@ public: vector broken_col_range (Item const *, Item const *) const; vector columns () const; + Grob *column (int i) const; void add_column (Paper_column *); void typeset_grob (Grob *); diff --git a/lily/system.cc b/lily/system.cc index 3ca397976b..8fee382572 100644 --- a/lily/system.cc +++ b/lily/system.cc @@ -490,6 +490,17 @@ System::columns () const return columns; } +Grob* +System::column (int which) const +{ + extract_grob_set (this, "columns", columns); + for (vsize i = 0; i < columns.size (); i++) + if (dynamic_cast (columns[i])->get_rank () == which) + return columns[i]; + programming_error ("couldn't find the column of the requested index"); + return columns[0]; +} + Paper_score* System::paper_score () const { -- 2.39.5