From: Han-Wen Nienhuys Date: Thu, 17 Nov 2005 13:00:19 +0000 (+0000) Subject: * input/regression/accidental-clef-change.ly: new file. X-Git-Tag: release/2.7.18~10 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=8071495de682d5348d8b654b74727f3cec782189;p=lilypond.git * input/regression/accidental-clef-change.ly: new file. * lily/note-collision.cc (check_meshing_chords): don't merge fa heads. * scm/define-grobs.scm (all-grob-descriptions): add Y-offset property. * lily/clef-engraver.cc (inspect_clef_properties): reset localKeySignature for clef changes. --- diff --git a/ChangeLog b/ChangeLog index 3cdb7d7911..39ce04051c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2005-11-17 Han-Wen Nienhuys + + * input/regression/accidental-clef-change.ly: new file. + + * lily/note-collision.cc (check_meshing_chords): don't merge fa heads. + + * scm/define-grobs.scm (all-grob-descriptions): add Y-offset property. + + * lily/clef-engraver.cc (inspect_clef_properties): reset + localKeySignature for clef changes. + 2005-11-17 Mats Bengtsson * python/midi.c: PyMIDINIT_FUNC isn't defined in Python < 2.3 @@ -17,6 +28,8 @@ 2005-11-16 Han-Wen Nienhuys + * VERSION: release 2.7.17 + * Documentation/topdocs/NEWS.tely (Top): add note about refactoring. diff --git a/VERSION b/VERSION index 66b5c6808b..0aad8cba56 100644 --- a/VERSION +++ b/VERSION @@ -1,6 +1,6 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=2 MINOR_VERSION=7 -PATCH_LEVEL=17 +PATCH_LEVEL=18 MY_PATCH_LEVEL= diff --git a/input/regression/accidental-clef-change.ly b/input/regression/accidental-clef-change.ly new file mode 100644 index 0000000000..3470819898 --- /dev/null +++ b/input/regression/accidental-clef-change.ly @@ -0,0 +1,13 @@ +\header { + texidoc = "Accidentals are reset for clef changes." +} + +\version "2.7.18" +\new Staff \relative c' { + \clef treble + cis dis fis + \clef bass + +} + +\layout {raggedright = ##t} diff --git a/lily/accidental-engraver.cc b/lily/accidental-engraver.cc index 985fe63868..957a3ce5dc 100644 --- a/lily/accidental-engraver.cc +++ b/lily/accidental-engraver.cc @@ -94,16 +94,6 @@ public: those. */ -static void -set_property_on_children (Context *trans, char const *sym, SCM val) -{ - trans->set_property (sym, ly_deep_copy (val)); - for (SCM p = trans->children_contexts (); scm_is_pair (p); p = scm_cdr (p)) - { - Context *trg = unsmob_context (scm_car (p)); - set_property_on_children (trg, sym, ly_deep_copy (val)); - } -} Accidental_engraver::Accidental_engraver () { @@ -121,7 +111,9 @@ void Accidental_engraver::update_local_key_signature () { last_keysig_ = get_property ("keySignature"); - set_property_on_children (context (), "localKeySignature", last_keysig_); + set_context_property_on_children (context (), + ly_symbol2scm ("localKeySignature"), + last_keysig_); Context *trans = context ()->get_parent_context (); diff --git a/lily/clef-engraver.cc b/lily/clef-engraver.cc index b7e1ff2124..c45c4b6dc3 100644 --- a/lily/clef-engraver.cc +++ b/lily/clef-engraver.cc @@ -144,6 +144,10 @@ Clef_engraver::inspect_clef_properties () || scm_equal_p (octavation, prev_octavation_) == SCM_BOOL_F || to_boolean (force_clef)) { + set_context_property_on_children (context (), + ly_symbol2scm ("localKeySignature"), + get_property ("keySignature")); + set_glyph (); if (prev_cpos_ != SCM_BOOL_F || to_boolean (get_property ("firstClef"))) create_clef (); diff --git a/lily/context.cc b/lily/context.cc index 1f086390d6..7c26ae8e96 100644 --- a/lily/context.cc +++ b/lily/context.cc @@ -611,3 +611,15 @@ measure_position (Context const *context) return m; } + + +void +set_context_property_on_children (Context *trans, SCM sym, SCM val) +{ + trans->internal_set_property (sym, ly_deep_copy (val)); + for (SCM p = trans->children_contexts (); scm_is_pair (p); p = scm_cdr (p)) + { + Context *trg = unsmob_context (scm_car (p)); + set_context_property_on_children (trg, sym, ly_deep_copy (val)); + } +} diff --git a/lily/include/context.hh b/lily/include/context.hh index 49469d27bf..4766944b6a 100644 --- a/lily/include/context.hh +++ b/lily/include/context.hh @@ -115,6 +115,7 @@ DECLARE_UNSMOB (Context, context); Moment measure_position (Context const *context); Rational measure_length (Context const *context); +void set_context_property_on_children (Context *trans, SCM sym, SCM val); #endif /* CONTEXT_HH */ diff --git a/lily/include/ligature-engraver.hh b/lily/include/ligature-engraver.hh index aa36a0596d..60b341ed99 100644 --- a/lily/include/ligature-engraver.hh +++ b/lily/include/ligature-engraver.hh @@ -5,6 +5,7 @@ (c) 2002--2005 Juergen Reuter */ + #ifndef LIGATURE_ENGRAVER_HH #define LIGATURE_ENGRAVER_HH diff --git a/lily/note-collision.cc b/lily/note-collision.cc index 709a7d0192..31c9d41cc3 100644 --- a/lily/note-collision.cc +++ b/lily/note-collision.cc @@ -76,6 +76,11 @@ check_meshing_chords (Grob *me, && !to_boolean (me->get_property ("merge-differently-headed"))) merge_possible = false; + merge_possible = merge_possible && + !(nu->get_property ("style") == ly_symbol2scm ("fa") + && nd->get_property ("style") == ly_symbol2scm ("fa")); + + /* Should never merge quarter and half notes, as this would make them indistinguishable. */ if (merge_possible diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 150c7b7f43..6d96746247 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -1674,6 +1674,7 @@ (TextSpanner . ( (stencil . ,Text_spanner::print) + (Y-offset . ,Side_position_interface::y_aligned_side) (font-shape . italic) (style . dashed-line) (staff-padding . 0.8)