]> git.donarmstrong.com Git - lilypond.git/commitdiff
* input/regression/accidental-clef-change.ly: new file.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 17 Nov 2005 13:00:19 +0000 (13:00 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 17 Nov 2005 13:00:19 +0000 (13:00 +0000)
* 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.

ChangeLog
VERSION
input/regression/accidental-clef-change.ly [new file with mode: 0644]
lily/accidental-engraver.cc
lily/clef-engraver.cc
lily/context.cc
lily/include/context.hh
lily/include/ligature-engraver.hh
lily/note-collision.cc
scm/define-grobs.scm

index 3cdb7d7911da07eb745fdff193a71075fce8bc49..39ce04051c36df3ca97a23f239507b2d7ca21087 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2005-11-17  Han-Wen Nienhuys  <hanwen@xs4all.nl>
+
+       * 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  <mabe@drongo.s3.kth.se>
 
        * python/midi.c: PyMIDINIT_FUNC isn't defined in Python < 2.3 
@@ -17,6 +28,8 @@
 
 2005-11-16  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
+       * VERSION: release 2.7.17
+       
        * Documentation/topdocs/NEWS.tely (Top): add note about
        refactoring.
 
diff --git a/VERSION b/VERSION
index 66b5c6808bbc808433eafddb22ebbe2aa98f6ee3..0aad8cba561577b4d9281413f5be22947034bb75 100644 (file)
--- 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 (file)
index 0000000..3470819
--- /dev/null
@@ -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
+    <cis dis fis gis>
+}
+
+\layout {raggedright = ##t} 
index 985fe638687526f8035465be2c7f4265b1de2a61..957a3ce5dce17d16c11be0c25bcec62cf82d0fc1 100644 (file)
@@ -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 ();
 
index b7e1ff2124f55ae83ff1eab792f05d76b88f7b51..c45c4b6dc3623d7157e41de0a3fed7ee9efc4e18 100644 (file)
@@ -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 ();
index 1f086390d6c98716c14035be5432055ec4a2b420..7c26ae8e9625d69ccf524d32c542b2f358ae4c52 100644 (file)
@@ -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));
+    }
+}
index 49469d27bf985b02427de6904250677e3be28944..4766944b6af9ce9a73adfedcff45cf2b374c8a67 100644 (file)
@@ -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 */
 
index aa36a0596dab01042ea4114cfa9cbfde75c07dc8..60b341ed996fda2f868a1ac62e74717d9df92274 100644 (file)
@@ -5,6 +5,7 @@
 
   (c) 2002--2005 Juergen Reuter <reuter@ipd.uka.de>
 */
+
 #ifndef LIGATURE_ENGRAVER_HH
 #define LIGATURE_ENGRAVER_HH
 
index 709a7d01923f286687374dd1c315b9e1e8aeefad..31c9d41cc369bacf3daaae472a2dfcbe00af3a05 100644 (file)
@@ -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
index 150c7b7f432e528e7ac744195ff252a4d0ffb17d..6d96746247fe76a7b63232215facc2fef4d67389 100644 (file)
     (TextSpanner
      . (
        (stencil . ,Text_spanner::print)
+       (Y-offset . ,Side_position_interface::y_aligned_side)
        (font-shape . italic)
        (style . dashed-line)
        (staff-padding . 0.8)