From db86c490c23a25c32c0545f6f69d16538159f426 Mon Sep 17 00:00:00 2001 From: Seafire Date: Mon, 3 Oct 2011 01:30:36 -0500 Subject: [PATCH] Dots in chords can not be moved Issue 1266 --- lily/dot-column.cc | 7 ++----- lily/dot-configuration.cc | 11 +++-------- lily/include/dot-configuration.hh | 2 -- 3 files changed, 5 insertions(+), 15 deletions(-) diff --git a/lily/dot-column.cc b/lily/dot-column.cc index 46b13811be..320f0e4051 100644 --- a/lily/dot-column.cc +++ b/lily/dot-column.cc @@ -164,9 +164,8 @@ Dot_column::calc_positioning_done (SCM smob) Grob *note = dots[i]->get_parent (Y_AXIS); if (note) { - Grob *stem = unsmob_grob (note->get_object ("stem")); - if (stem) - dp.extremal_head_ = Stem::first_head (stem) == note; + if (Note_head::has_interface (note)) + dp.dir_ = to_dir (dp.dot_->get_property ("direction")); dp.x_extent_ = note->extent (commonx, X_AXIS); } @@ -177,8 +176,6 @@ Dot_column::calc_positioning_done (SCM smob) offset callback but adding a dot overwrites Y-offset. */ p += (int) robust_scm2double (dp.dot_->get_property ("staff-position"), 0.0); dp.pos_ = p; - if (dp.extremal_head_) - dp.dir_ = to_dir (dp.dot_->get_property ("direction")); cfg.remove_collision (p); cfg[p] = dp; diff --git a/lily/dot-configuration.cc b/lily/dot-configuration.cc index fefb983433..4b57faffc3 100644 --- a/lily/dot-configuration.cc +++ b/lily/dot-configuration.cc @@ -33,14 +33,9 @@ Dot_configuration::badness () const int demerit = sqr (p - i->second.pos_) * 2; int dot_move_dir = sign (p - i->second.pos_); - if (i->second.extremal_head_) - { - if (i->second.dir_ - && dot_move_dir != i->second.dir_) - demerit += 3; - else if (dot_move_dir != UP) - demerit += 2; - } + if (i->second.dir_ + && dot_move_dir != i->second.dir_) + demerit += 2; else if (dot_move_dir != UP) demerit += 1; diff --git a/lily/include/dot-configuration.hh b/lily/include/dot-configuration.hh index 82fea8b5ba..3aeb328e83 100644 --- a/lily/include/dot-configuration.hh +++ b/lily/include/dot-configuration.hh @@ -32,7 +32,6 @@ struct Dot_position Direction dir_; Grob *dot_; Box dot_extents_; - bool extremal_head_; Interval x_extent_; Dot_position () @@ -40,7 +39,6 @@ struct Dot_position dot_ = 0; pos_ = 0; dir_ = CENTER; - extremal_head_ = false; } }; -- 2.39.2