From a2f4238fcddb8e55a89933a0436406974c015c3d Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Tue, 19 Apr 2005 13:11:25 +0000 Subject: [PATCH] * lily/slur-scoring.cc (get_bound_info): robustness: substitute relative_coordinate if extent is empty. * lily/stem.cc (width_callback): determine correct extent if flag is not there. This fixes slur-no-flag.ly --- ChangeLog | 6 ++++++ lily/slur-scoring.cc | 16 ++++++++++++++-- lily/stem.cc | 4 ++-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index cbfc6032ee..c983d113ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2005-04-19 Han-Wen Nienhuys + * lily/slur-scoring.cc (get_bound_info): robustness: substitute + relative_coordinate if extent is empty. + + * lily/stem.cc (width_callback): determine correct extent if flag + is not there. This fixes slur-no-flag.ly + * lily/grace-engraver.cc (consider_change_grace_settings): new function. (initialize): also consider_change_grace_settings() on initialization. Fixes large grace notes at start of score. diff --git a/lily/slur-scoring.cc b/lily/slur-scoring.cc index 400e08a9a8..f0cebb1a73 100644 --- a/lily/slur-scoring.cc +++ b/lily/slur-scoring.cc @@ -240,8 +240,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_ diff --git a/lily/stem.cc b/lily/stem.cc index ef65d34002..5eebd974e5 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -615,8 +615,8 @@ Stem::width_callback (SCM e, SCM ax) } else { - r = flag (me).extent (X_AXIS) - + thickness (me) / 2; + r = Interval (-1,1) * thickness (me) * 0.5; + r.unite (flag (me).extent (X_AXIS)); } return ly_interval2scm (r); } -- 2.39.5