From af97c5bad52e588c6e7a9ec5554162a615be19cb Mon Sep 17 00:00:00 2001 From: Graham Percival Date: Tue, 14 Dec 2010 15:33:07 +0000 Subject: [PATCH] Don't make paper columns if skipTypesetting = ##t (1336) Patch from Neil, with assistance from Carl. I'm committing this now so that I can get another release out. --- lily/include/paper-column-engraver.hh | 1 + lily/paper-column-engraver.cc | 22 +++++++++++++++++----- scm/page.scm | 2 +- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/lily/include/paper-column-engraver.hh b/lily/include/paper-column-engraver.hh index 4150e0625e..afd2826380 100644 --- a/lily/include/paper-column-engraver.hh +++ b/lily/include/paper-column-engraver.hh @@ -56,6 +56,7 @@ protected: Paper_column *musical_column_; vector items_; bool first_; + bool made_columns_; Moment last_moment_; public: diff --git a/lily/paper-column-engraver.cc b/lily/paper-column-engraver.cc index 33690e38a8..43b6abefb2 100644 --- a/lily/paper-column-engraver.cc +++ b/lily/paper-column-engraver.cc @@ -42,6 +42,7 @@ Paper_column_engraver::Paper_column_engraver () breaks_ = 0; system_ = 0; first_ = true; + made_columns_ = false; } void @@ -50,6 +51,14 @@ Paper_column_engraver::finalize () if (! (breaks_ % 8)) progress_indication ("[" + to_string (breaks_) + "]"); + if (!made_columns_) + { + make_columns (); + SCM m = now_mom ().smobbed_copy (); + command_column_->set_property ("when", m); + musical_column_->set_property ("when", m); + } + if (command_column_) { if (!scm_is_symbol (command_column_->get_property ("line-break-permission"))) @@ -199,6 +208,9 @@ Paper_column_engraver::process_music () void Paper_column_engraver::stop_translation_timestep () { + if (to_boolean (get_property ("skipTypesetting"))) + return; + SCM m = now_mom ().smobbed_copy (); command_column_->set_property ("when", m); musical_column_->set_property ("when", m); @@ -264,11 +276,11 @@ Paper_column_engraver::stop_translation_timestep () void Paper_column_engraver::start_translation_timestep () { - /* - TODO: don't make columns when skipTypesetting is true. - */ - if (!first_) - make_columns (); + if (!first_ && !to_boolean (get_property ("skipTypesetting"))) + { + make_columns (); + made_columns_ = true; + } } ADD_ACKNOWLEDGER (Paper_column_engraver, item); diff --git a/scm/page.scm b/scm/page.scm index 409d013437..539709e60c 100644 --- a/scm/page.scm +++ b/scm/page.scm @@ -246,7 +246,7 @@ (add-system (lambda (system) (let* ((stencil (paper-system-stencil system)) - (y (ly:prob-property system 'Y-offset)) + (y (ly:prob-property system 'Y-offset 0)) (is-title (paper-system-title? system))) (add-to-page stencil -- 2.39.2