+2002-06-13 Han-Wen <hanwen@cs.uu.nl>
+
+ * lily/key-engraver.cc (try_music): read request only once. Don't
+ overwrite lastKeySignature. Call create_key() only once. This
+ fixes a bug with multiple equal key changes on polyphonic staffs.
+
2002-06-12 Mats Bengtsson <mats.bengtsson@s3.kth.se>
* scm/grob-description.scm: Add side-position-interface to TextSpanner
virtual bool try_music (Music *req_l);
virtual void stop_translation_timestep ();
virtual void start_translation_timestep ();
- virtual void create_grobs ();
+ virtual void process_music ();
virtual void acknowledge_grob (Grob_info);
};
keyreq_l_->origin ()->warning (_ ("This was the other key definition."));
return false;
}
- keyreq_l_ = kc;
- read_req (keyreq_l_);
+ if (!keyreq_l_)
+ {
+ /*
+ do this only once, just to be on the safe side.
+ */
+ keyreq_l_ = kc;
+ read_req (keyreq_l_);
+ }
+
return true;
}
return false;
void
-Key_engraver::create_grobs ()
+Key_engraver::process_music ()
{
if (keyreq_l_ ||
get_property ("lastKeySignature") != get_property ("keySignature"))
if (gh_scm2int (ly_cdar (s)))
accs = gh_cons (ly_car (s), accs);
+#if 0
daddy_trans_l_->set_property ("lastKeySignature",
get_property ("keySignature"));
+#endif
+
daddy_trans_l_->set_property ("keySignature", accs);
}