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);
}
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;
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;