]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/slur-scoring.cc
Use a `define-builtin-markup-command' macro for builtin markups, which
[lilypond.git] / lily / slur-scoring.cc
index 618786867efff0fc4352addff0882cc1607e1d12..34e20519c96c0ea34afd3ff627abe31b7411f7d2 100644 (file)
@@ -74,12 +74,11 @@ broken_trend_y (Slur_score_state const &state, Direction hdir)
   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
@@ -108,13 +107,8 @@ Slur_score_state::set_next_direction ()
   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_);
     }
 }
@@ -230,13 +224,14 @@ Slur_score_state::fill (Grob *me)
   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;