+
+/*
+ It's dubious whether we can ever make this fully work. Due to
+ associatedVoice switching, this routine may be triggered for
+ the wrong music_context_
+ */
+IMPLEMENT_LISTENER (Lyric_combine_music_iterator, set_busy)
+void
+Lyric_combine_music_iterator::set_busy (SCM se)
+{
+ Stream_event *e = unsmob_stream_event (se);
+
+ if ((e->in_event_class ("note-event") || e->in_event_class ("cluster-note-event"))
+ && music_context_)
+
+ busy_moment_ = max (music_context_->now_mom (),
+ busy_moment_);
+
+}
+
+void
+Lyric_combine_music_iterator::set_music_context (Context *to)
+{
+ if (music_context_)
+ {
+ music_context_->event_source ()->remove_listener (GET_LISTENER (set_busy), ly_symbol2scm ("music-event"));
+ }
+
+ music_context_ = to;
+ if (to)