I suggest making the minimal changes to the structure of the old code (plus whatever comments you like) that make the change we all want in in behavior.
https://codereview.appspot.com/15400049/diff/120001/lily/slur-configuration.cc File lily/slur-configuration.cc (left): https://codereview.appspot.com/15400049/diff/120001/lily/slur-configuration.cc#oldcode45 lily/slur-configuration.cc:45: { Real t = ts[0]; Real y = bez.curve_point (t)[Y_AXIS]; Grob *staff = state.extremes_[LEFT].staff_; Real p = 2 * (y - staff->relative_coordinate (state.common_[Y_AXIS], Y_AXIS)) / state.staff_space_; Real const round = my_round (p); Real const frac = p - round; Real min_separation = 0.5 * state.thickness_ + (frac * state.dir_ > 0.0) ? state.parameters_.min_gap_inside_ : state.parameters_.min_gap_outside_; if (fabs (frac) < 2 * min_separation && Staff_symbol_referencer::on_staff_line (staff, int (round))) { Direction resolution_dir = (frac > 0.0) ? UP : DOWN; Real newp = round + resolution_dir * min (1.0, 2 * min_separation); Real dy = (newp - p) * state.staff_space_ / 2.0; bez.control_[1][Y_AXIS] += dy; bez.control_[2][Y_AXIS] += dy; // The horizontal part of the curve moves 3t-3t² as far // as the middle control-points, so the remaining correction is: dy -= dy * 3.0 * t * (1.0 - t); bez.control_[0][Y_AXIS] += dy; bez.control_[1][Y_AXIS] += dy; bez.control_[2][Y_AXIS] += dy; bez.control_[3][Y_AXIS] += dy; } https://codereview.appspot.com/15400049/ _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel