Horizontal positioning for dots on rests should not trigger vertical
positioning.
--- /dev/null
+\header {
+
+ texidoc = "Dotted rests connected with beams do not trigger
+ premature beam calculations. In this case, the beam should be
+ sloped, and there should be no programming_error() warnings."
+
+}
+
+\version "2.11.54"
+\new Staff \relative c''
+{
+ <<
+ { \time 12/16 c16[ b a r b g] }
+ \\
+ { r8. r }
+ >>
+}
+
+
-#include "dots.hh"
-#include "dot-column.hh"
-#include "rhythmic-head.hh"
-#include "staff-symbol-referencer.hh"
-#include "directional-element-interface.hh"
-#include "side-position-interface.hh"
#include "axis-group-interface.hh"
#include "axis-group-interface.hh"
-#include "stem.hh"
-#include "grob.hh"
-#include "pointer-group-interface.hh"
+#include "directional-element-interface.hh"
+#include "dot-column.hh"
#include "dot-configuration.hh"
#include "dot-configuration.hh"
+#include "dot-formatting-problem.hh"
+#include "dots.hh"
+#include "grob.hh"
+#include "pointer-group-interface.hh"
-#include "dot-formatting-problem.hh"
+#include "rhythmic-head.hh"
+#include "side-position-interface.hh"
+#include "staff-symbol-referencer.hh"
+#include "stem.hh"
MAKE_SCHEME_CALLBACK (Dot_column, calc_positioning_done, 1);
SCM
MAKE_SCHEME_CALLBACK (Dot_column, calc_positioning_done, 1);
SCM
*/
Staff_symbol_referencer::set_position (i->second.dot_, i->first);
}
*/
Staff_symbol_referencer::set_position (i->second.dot_, i->first);
}
me->translate_axis (cfg.x_offset () - me->relative_coordinate (commonx, X_AXIS),
X_AXIS);
me->translate_axis (cfg.x_offset () - me->relative_coordinate (commonx, X_AXIS),
X_AXIS);
-Dot_column::add_head (Grob *me, Grob *rh)
+Dot_column::add_head (Grob *me, Grob *head)
- Grob *d = unsmob_grob (rh->get_object ("dot"));
+ Grob *d = unsmob_grob (head->get_object ("dot"));
- Side_position_interface::add_support (me, rh);
+ Side_position_interface::add_support (me, head);
Pointer_group_interface::add_grob (me, ly_symbol2scm ("dots"), d);
d->set_property ("Y-offset", Grob::x_parent_positioning_proc);
Pointer_group_interface::add_grob (me, ly_symbol2scm ("dots"), d);
d->set_property ("Y-offset", Grob::x_parent_positioning_proc);
- d->set_property ("X-offset", Grob::x_parent_positioning_proc);
+ // Dot formatting requests the Y-offset, -which- for rests may
+ // trigger post-linebreak callbacks.
+ if (!Rest::has_interface (head))
+ d->set_property ("X-offset", Grob::x_parent_positioning_proc);
Axis_group_interface::add_element (me, d);
}
}
Axis_group_interface::add_element (me, d);
}
}