+ /* Handle horizontal shifts for crossing notes */
+ execute_pushpop_property (one, ly_symbol2scm ("NoteColumn"),
+ ly_symbol2scm ("horizontal-shift"), horizontalShiftOne_);
+ execute_pushpop_property (two, ly_symbol2scm ("NoteColumn"),
+ ly_symbol2scm ("horizontal-shift"), horizontalShiftTwo_);
+
+}
+
+IMPLEMENT_LISTENER (Part_combine_iterator, set_busy);
+void
+Part_combine_iterator::set_busy (SCM se)
+{
+ if (!notice_busy_)
+ return;
+
+ Stream_event *e = unsmob_stream_event (se);
+
+ if (e->in_event_class ("note-event") || e->in_event_class ("cluster-note-event"))
+ busy_ = true;
+}
+
+/*
+ Processes a moment in an iterator, and returns whether any new music
+ was reported.
+*/
+bool
+Part_combine_iterator::try_process (Music_iterator *i, Moment m)
+{
+ busy_ = false;
+ notice_busy_ = true;
+
+ i->process (m);
+
+ notice_busy_ = false;
+ return busy_;