Sometimes the check for the *left* broken neighbor may be a spacer rest,
which appears to be a generic Spanner with direction CENTER.
An additional check is needed to make sure the grob in question is a
Slur or PhrasingSlur, or else an assertion will be raised -- slurs must
have a direction of either UP or DOWN.
Direction
Slur_score_state::slur_direction () const
{
- if (Grob *left_neighbor = slur_->broken_neighbor (LEFT))
+ Grob *left_neighbor = slur_->broken_neighbor (LEFT);
+
+ if (left_neighbor && Slur::has_interface (left_neighbor))
return get_grob_direction (left_neighbor);
Direction dir = get_grob_direction (slur_);