From 9617b03907f82f3f5d530319f6d6ae6fe5d61e97 Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer Date: Tue, 12 Apr 2011 14:00:00 +0200 Subject: [PATCH] CueClefs: Use middleCClefPosition in the key engraver Otherwise the key signature would use the clef of the cue part, which is not what we want --- input/regression/cue-clef-keysignature.ly | 17 +++++++++++++++++ lily/key-engraver.cc | 9 +++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 input/regression/cue-clef-keysignature.ly diff --git a/input/regression/cue-clef-keysignature.ly b/input/regression/cue-clef-keysignature.ly new file mode 100644 index 0000000000..915d772ac6 --- /dev/null +++ b/input/regression/cue-clef-keysignature.ly @@ -0,0 +1,17 @@ +\version "2.15.3" + +\header { + texidoc = "Clefs for cue notes should not influence the printed key signature." +} + +vI = \relative c'' { \clef "treble" \repeat unfold 40 g4 } +\addQuote vIQuote { \vI } +\score { + \new Staff { + \clef "bass" \key g \major + \cueDuringWithClef #"vIQuote" #DOWN #"treble" { R1 } | + c1 | + \cueDuringWithClef #"vIQuote" #DOWN #"soprano" { R1 \break R1 } + c1 | + } +} diff --git a/lily/key-engraver.cc b/lily/key-engraver.cc index db223e6606..2264e27876 100644 --- a/lily/key-engraver.cc +++ b/lily/key-engraver.cc @@ -72,8 +72,12 @@ Key_engraver::create_key (bool is_default) item_ = make_item ("KeySignature", key_event_ ? key_event_->self_scm () : SCM_EOL); + /* Use middleCClefPosition rather than middleCPosition, because cue + * notes with a different clef will modify middleCPosition. The + * Key signature, however, should still be printed at the original + * position. */ item_->set_property ("c0-position", - get_property ("middleCPosition")); + get_property ("middleCClefPosition")); SCM last = get_property ("lastKeySignature"); SCM key = get_property ("keySignature"); @@ -230,7 +234,8 @@ ADD_TRANSLATOR (Key_engraver, "keyAlterationOrder " "keySignature " "lastKeySignature " - "printKeyCancellation ", + "printKeyCancellation " + "middleCClefPosition ", /* write */ "keySignature " -- 2.39.2