- 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_grob_property ("stems");
- gh_pair_p (s); s = ly_cdr (s))
- Group_interface::add_thing (span_arpeggio_, ly_symbol2scm ("stems"), ly_car (s));
- for (SCM s = arpeggios_[i]->get_grob_property ("side-support-elements");
- gh_pair_p (s); s = ly_cdr (s))
- Group_interface::add_thing (span_arpeggio_, ly_symbol2scm ("side-support-elements"), ly_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_grob_property ("molecule-callback", SCM_EOL);
- }
-
- typeset_grob (span_arpeggio_);
+ 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);