-ADD_INTERFACE (Tuplet_bracket,
- "A bracket with a number in the middle, used for tuplets. "
- "When the bracket spans a line break, the value of "
- "@code{break-overshoot} determines how far it extends "
- "beyond the staff. "
- "At a line break, the markups in the @code{edge-text} are printed "
- "at the edges. ",
+MAKE_SCHEME_CALLBACK (Tuplet_bracket, calc_cross_staff, 1);
+SCM
+Tuplet_bracket::calc_cross_staff (SCM smob)
+{
+ Grob *me = unsmob_grob (smob);
+ Grob *staff_symbol = 0;
+ extract_grob_set (me, "note-columns", cols);
+ bool equally_long = false;
+ Grob *par_beam = parallel_beam (me, cols, &equally_long);
+
+ if (par_beam)
+ return par_beam->get_property ("cross-staff");
+
+ for (vsize i = 0; i < cols.size (); i++)
+ {
+ Grob *stem = unsmob_grob (cols[i]->get_object ("stem"));
+ if (!stem)
+ continue;
+
+ if (to_boolean (stem->get_property ("cross-staff")))
+ return SCM_BOOL_T;