- we do this very late, to make sure we also catch `extra'
- side-pos support like accidentals.
- */
- for (int i = 0; i < arpeggios_.size (); i ++)
- {
- for (SCM s = arpeggios_[i]->get_property ("stems");
- scm_is_pair (s); s = scm_cdr (s))
- Group_interface::add_thing (span_arpeggio_, ly_symbol2scm ("stems"), scm_car (s));
- for (SCM s = arpeggios_[i]->get_property ("side-support-elements");
- scm_is_pair (s); s = scm_cdr (s))
- Group_interface::add_thing (span_arpeggio_, ly_symbol2scm ("side-support-elements"), scm_car (s));
-
- /*
- we can't kill the children, since we don't want to the
- previous note to bump into the span arpeggio; so we make
- it transparent. */
- arpeggios_[i]->set_property ("print-function", SCM_EOL);
- }
-
+ we do this very late, to make sure we also catch `extra'
+ side-pos support like accidentals.
+ */
+ for (vsize j = 0; j < arpeggios_.size (); j++)
+ {
+ extract_grob_set (arpeggios_[j], "stems", stems);
+ for (vsize i = 0; i < stems.size (); i++)
+ Pointer_group_interface::add_grob (span_arpeggio_, ly_symbol2scm ("stems"),
+ stems[i]);
+
+ extract_grob_set (arpeggios_[j], "side-support-elements", sses);
+ for (vsize i = 0; i < sses.size (); i++)
+ Pointer_group_interface::add_grob (span_arpeggio_, ly_symbol2scm ("side-support-elements"),
+ sses[i]);
+
+ /*
+ we can't kill the children, since we don't want to the
+ previous note to bump into the span arpeggio; so we make
+ it transparent. */
+ arpeggios_[j]->set_property ("transparent", SCM_BOOL_T);
+ }
+
+ span_arpeggio_->set_parent (arpeggios_[0]->get_parent (Y_AXIS), Y_AXIS);