- Spanner *me = unsmob_spanner (smob);
- if (!head (me, LEFT) && !head (me, RIGHT))
- {
- programming_error ("tie without heads");
- me->suicide ();
- return SCM_EOL;
- }
-
- set_direction (me);
- int tie_position = (int) Tie::get_position (me);
-
- Direction dir = get_grob_direction (me);
-
- Real staff_space = Staff_symbol_referencer::staff_space (me);
- Real staff_position = tie_position;
-
- Grob *common[NO_AXES];
- for (int a = X_AXIS; a < NO_AXES; a++)
- {
- Axis ax ((Axis) a);
- common[ax] = me->get_bound (LEFT)->common_refpoint (me, ax);
- common[ax] = me->get_bound (RIGHT)->common_refpoint (common[a], ax);
- }
-
- Interval attachments;
-
- Direction d = LEFT;
- Real gap = robust_scm2double (me->get_property ("x-gap"), 0.2);
- do
- {
- attachments[d]
- = robust_relative_extent (me->get_bound (d),
- common[X_AXIS],
- X_AXIS)[-d]
- - gap * d;
- }
- while (flip (&d) != LEFT);
-
- bool in_between = true;
- if (attachments.length () < 0.6 * staff_space)
+ Grob *me = unsmob_grob (smob);
+ Grob *yparent = me->get_parent (Y_AXIS);
+ if (Tie_column::has_interface (yparent)
+ && unsmob_grob_array (yparent->get_object ("ties"))
+ && unsmob_grob_array (yparent->get_object ("ties"))->size () > 1)