]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/key-engraver.cc
release: 1.0.17
[lilypond.git] / lily / key-engraver.cc
index 7772f0e718f7ad1f9ce8d26daa134650caba9210..83fd6ec6db5be709db24f5d19f11ae33790ec7c6 100644 (file)
@@ -29,7 +29,7 @@ Key_engraver::create_key ()
       kit_p_ = new Key_item;
       kit_p_->break_priority_i_ = -1; // ugh
       announce_element (Score_element_info (kit_p_,keyreq_l_));
-      kit_p_->read (*this);
+      kit_p_->set (key_.multi_octave_b_, accidental_idx_arr_, old_accidental_idx_arr_);
     }
 }
 
@@ -51,9 +51,12 @@ void
 Key_engraver::acknowledge_element (Score_element_info info)
 {
   Command_req * r_l = info.req_l_->access_Command_req () ;
+
   if (r_l && r_l->access_Clef_change_req ()) 
     {
-      create_key ();
+      int i= get_property ("createKeyOnClefChange").length_i ();
+      if (i)
+       create_key ();
     }
   else if (info.elem_l_->is_type_b (Bar::static_name ())
           && accidental_idx_arr_.size ()) 
@@ -94,10 +97,10 @@ Key_engraver::read_req (Key_change_req const * r)
 {
   old_accidental_idx_arr_ = accidental_idx_arr_;
   key_.clear ();
-  Scalar prop = get_property ("specialaccidentals");
+  Scalar prop = get_property ("keyoctaviation");
   if (prop.length_i () > 0)
     {
-      key_.multi_octave_b_ = prop.to_bool ();
+      key_.multi_octave_b_ = prop.to_bool ();
     }
   
   accidental_idx_arr_.clear ();
@@ -179,6 +182,7 @@ Key_engraver::do_post_move_processing ()
 {
   keyreq_l_ = 0;
   default_key_b_ = false;
+  old_accidental_idx_arr_.clear ();
 }