]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/slur-scoring.cc
(grob-cause): Bugfix.
[lilypond.git] / lily / slur-scoring.cc
index 400e08a9a82726370043aa34deb074f2c4fb8c3b..160e157089c104be4c3450d01b3f2370bdaa8162 100644 (file)
@@ -32,8 +32,6 @@
 
   - curve around flag for y coordinate
 
-  - this file is a mess, clean it up
-
   - short-cut: try a smaller region first.
 
   - handle non-visible stems better.
@@ -240,8 +238,20 @@ Slur_score_state::get_bound_info () const
          extremes[d].note_column_ = extremes[d].bound_;
          extremes[d].stem_ = Note_column::get_stem (extremes[d].note_column_);
          extremes[d].stem_dir_ = get_grob_direction (extremes[d].stem_);
-         extremes[d].stem_extent_[X_AXIS]
-           = extremes[d].stem_->extent (common_[X_AXIS], X_AXIS);
+
+         for (int a = X_AXIS; a < NO_AXES; a++)
+           {
+             Axis ax = Axis (a);
+             Interval s = extremes[d].stem_->extent (common_[ax], ax);
+             if (s.is_empty ())
+               {
+                 programming_error ("Stem has no extent in Slur_score_state");
+                 s = Interval (0,0)
+                   + extremes[d].stem_->relative_coordinate (common_[ax], ax);
+               }
+             extremes[d].stem_extent_[ax] = s; 
+           }
+         
          extremes[d].stem_extent_[Y_AXIS]
            = extremes[d].stem_->extent (common_[Y_AXIS], Y_AXIS);
          extremes[d].slur_head_