Real by = 0.0;
if (Spanner *mother = dynamic_cast<Spanner *> (state.slur_->original ()))
{
- vsize k = broken_spanner_index (state.slur_);
- int j = int (k) + hdir;
- if (j < 0 || vsize (j) >= mother->broken_intos_.size ())
+ Grob *neighbor = mother->broken_neighbor (hdir);
+ if (!neighbor)
return by;
- Grob *neighbor = mother->broken_intos_[j];
+
Spanner *common_mother
= dynamic_cast<Spanner *> (state.common_[Y_AXIS]->original ());
int common_k
if (extremes_[RIGHT].note_column_)
return;
- if (Spanner *mother = dynamic_cast<Spanner *> (slur_->original ()))
+ if (Grob *neighbor = slur_->broken_neighbor (RIGHT))
{
- vsize j = 1 + broken_spanner_index (slur_);
- if (j >= mother->broken_intos_.size ())
- return;
-
- Grob *neighbor = mother->broken_intos_[j];
set_grob_direction (neighbor, dir_);
}
}
slur_ = dynamic_cast<Spanner *> (me);
columns_
= internal_extract_grob_array (me, ly_symbol2scm ("note-columns"));
-
+
if (columns_.empty ())
{
me->suicide ();
return;
}
+ Slur::replace_breakable_encompass_objects (me);
staff_space_ = Staff_symbol_referencer::staff_space (me);
Real lt = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness"));
thickness_ = robust_scm2double (me->get_property ("thickness"), 1.0) * lt;