From ccf8655fa768604e43971a84d814236c707dc283 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Wed, 31 Jan 2007 18:24:23 +0100 Subject: [PATCH] Fix #262. Add extendersOverRests property. --- input/regression/lyric-extender-rest.ly | 25 +++++++++++++++++++++++++ lily/extender-engraver.cc | 7 +++++-- scm/define-context-properties.scm | 2 ++ 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 input/regression/lyric-extender-rest.ly diff --git a/input/regression/lyric-extender-rest.ly b/input/regression/lyric-extender-rest.ly new file mode 100644 index 0000000000..ea096f7a7c --- /dev/null +++ b/input/regression/lyric-extender-rest.ly @@ -0,0 +1,25 @@ + +\header { + + texidoc = "If @code{extendersOverRests} is set, an extender +is not terminated upon encountering a rest. " + +} + +\paper { + ragged-right = ##T +} + +\version "2.11.15" + +<< + \new Voice = "one" \relative c'' { + c4\melisma + c4 r c\melismaEnd c + } + \new Lyrics \lyricsto "one" { + \set extendersOverRests = ##t + + Test __ end + } +>> diff --git a/lily/extender-engraver.cc b/lily/extender-engraver.cc index efbb82d05c..ced1f123ce 100644 --- a/lily/extender-engraver.cc +++ b/lily/extender-engraver.cc @@ -35,7 +35,9 @@ public: protected: DECLARE_TRANSLATOR_LISTENER (extender); DECLARE_ACKNOWLEDGER (lyric_syllable); + virtual void finalize (); + void stop_translation_timestep (); void process_music (); }; @@ -100,7 +102,8 @@ Extender_engraver::stop_translation_timestep () } else { - if (pending_extender_) + if (pending_extender_ + && !get_property ("extendersOverRests")) { completize_extender (pending_extender_); pending_extender_ = 0; @@ -154,5 +157,5 @@ ADD_ACKNOWLEDGER (Extender_engraver, lyric_syllable); ADD_TRANSLATOR (Extender_engraver, /* doc */ "Create lyric extenders", /* create */ "LyricExtender", - /* read */ "", + /* read */ "extendersOverRests", /* write */ ""); diff --git a/scm/define-context-properties.scm b/scm/define-context-properties.scm index 7dda76b16b..0197dfea47 100644 --- a/scm/define-context-properties.scm +++ b/scm/define-context-properties.scm @@ -205,6 +205,8 @@ note, one above and one below the chord.") changes. @samp{\\override} of the @code{break-visibility} property will set the visibility for normal (i.e. at the start of the line) key signatures.") + (extendersOverRests ,boolean? "Whether to continue extenders as +they cross a rest.") (extraNatural ,boolean? "Whether to typeset an extra natural sign before accidentals changing from a non-natural to another non-natural.") -- 2.39.2