- Grob *e =info.grob_l_;
- for (int i = 0; i < slur_l_stack_.size (); i++)
- Slur::add_column (slur_l_stack_[i], e);
- for (int i = 0; i < end_slur_l_arr_.size (); i++)
- Slur::add_column (end_slur_l_arr_[i], e);
+ for (int i = slurs_.size (); i--; )
+ Slur::add_column (slurs_[i], e);
+ for (int i = end_slurs_.size (); i-- ; )
+ Slur::add_column (end_slurs_[i], e);
+ }
+ else
+ {
+ SCM inside = e->get_property ("inside-slur");
+ if (Tie::has_interface (e)
+ || to_boolean (inside))
+ {
+ for (int i = slurs_.size (); i--; )
+ Slur::add_extra_encompass (slurs_[i], e);
+ for (int i = end_slurs_.size (); i--; )
+ Slur::add_extra_encompass (end_slurs_[i], e);
+ }
+ else if (inside == SCM_BOOL_F)
+ {
+ Grob *slur = slurs_.size()?slurs_[0] : 0;
+ slur = (end_slurs_.size () && !slur)
+ ? end_slurs_[0] : slur;
+
+ if (slur)
+ {
+ e->add_offset_callback (Slur::outside_slur_callback_proc, Y_AXIS);
+ e->set_property ("slur", slur->self_scm());
+ }
+ }