- int script_count = scripts_.size ();
- for (int i = 0; i < script_count; i++)
- if (Grob *sc = scripts_[i].script_)
- {
- SCM follow = scm_assoc (ly_symbol2scm ("follow-into-staff"),
- scripts_[i].description_);
- if (ly_c_pair_p (follow) && to_boolean (ly_cdr (follow)))
- {
- sc->add_offset_callback (Side_position_interface
- ::quantised_position_proc, Y_AXIS);
- sc->set_property ("staff-padding", SCM_EOL);
- }
-
- /* Simplistic slur collision handling. This fixes simple collisions
- like
-
- a_\upbow( b)
-
- but it most probably breaks for more interesting cases.
- Maybe make a new colission engraver.
-
-
- Assume that a SCRIPT that should collide with SLUR does not
- have a negative priority. */
- SCM priority = sc->get_property ("script-priority");
- if (robust_scm2int (priority, 0) >= 0
- && slur_
- && get_grob_direction (sc) == get_slur_dir (slur_))
- {
- Real ss = Staff_symbol_referencer::staff_space (sc);
- Real pad = robust_scm2double (sc->get_property ("padding"), 0);
-
- /* FIXME: 1ss padding hardcoded */
- sc->set_property ("padding", scm_make_real (pad + ss));
- }
- }
- slur_ = 0;