Real rounded = directed_round (position, dir);
Grob *head = me->get_parent (X_AXIS);
- if (fabs (position) <= 2 * Staff_symbol_referencer::staff_radius (me) + 1
+ if (fabs (position) <= 2 * Staff_symbol_referencer::staff_radius (me) + 1
+ /* In case of a ledger lines, quantize even if we're outside the staff. */
|| (Note_head::has_interface (head)
- && sign (Staff_symbol_referencer::get_position (head)) == - dir))
+
+ && abs (Staff_symbol_referencer::get_position (head)) > position))
{
o += (rounded - position) * 0.5 * ss;
if (Staff_symbol_referencer::on_line (me, int (rounded)))