- if (Grob *st = Staff_symbol_referencer::get_staff_symbol (me))
+ Grob *st = Staff_symbol_referencer::get_staff_symbol (me);
+
+ /* staff-padding doesn't work correctly on cross-staff tuplets
+ because it only considers one staff symbol. Until this works,
+ disable it. */
+ if (st && !to_boolean (me->get_property ("cross-staff")))
bool equally_long = false;
Grob *par_beam = parallel_beam (me, columns, &equally_long);
bool equally_long = false;
Grob *par_beam = parallel_beam (me, columns, &equally_long);
Item *lgr = get_x_bound_item (me, LEFT, dir);
Item *rgr = get_x_bound_item (me, RIGHT, dir);
Real x0 = robust_relative_extent (lgr, commonx, X_AXIS)[LEFT];
Real x1 = robust_relative_extent (rgr, commonx, X_AXIS)[RIGHT];
bool follow_beam = par_beam
Item *lgr = get_x_bound_item (me, LEFT, dir);
Item *rgr = get_x_bound_item (me, RIGHT, dir);
Real x0 = robust_relative_extent (lgr, commonx, X_AXIS)[LEFT];
Real x1 = robust_relative_extent (rgr, commonx, X_AXIS)[RIGHT];
bool follow_beam = par_beam
Drul_array<Grob *> stems (Note_column::get_stem (columns[0]),
Note_column::get_stem (columns.back ()));
Drul_array<Grob *> stems (Note_column::get_stem (columns[0]),
Note_column::get_stem (columns.back ()));
Real ss = 0.5 * Staff_symbol_referencer::staff_space (me);
Real lp = ss * robust_scm2double (stems[LEFT]->get_property ("stem-end-position"), 0.0)
Real ss = 0.5 * Staff_symbol_referencer::staff_space (me);
Real lp = ss * robust_scm2double (stems[LEFT]->get_property ("stem-end-position"), 0.0)
get_bounds (me, &left_col, &right_col);
if (left_col && right_col)
{
get_bounds (me, &left_col, &right_col);
if (left_col && right_col)
{
- Interval rv = right_col->extent (commony, Y_AXIS);
- Interval lv = left_col->extent (commony, Y_AXIS);
+ Interval rv = Note_column::cross_staff_extent (right_col, commony);
+ Interval lv = Note_column::cross_staff_extent (left_col, commony);