From: Reinhold Kainhofer Date: Tue, 12 Apr 2011 12:00:00 +0000 (+0200) Subject: CueClefs: Use middleCClefPosition in the key engraver X-Git-Tag: release/2.15.3-1~10^2~3 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;ds=inline;h=9617b03907f82f3f5d530319f6d6ae6fe5d61e97;p=lilypond.git 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 --- 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 "