skyline extents. This fixes tie formatting if the left head has dots.
* lily/tie.cc (get_configuration): only shift tie by a whole staff
space inside the staff.
(get_configuration): shift another position if necessary in case
of left head tie
+2005-11-13 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+ * lily/tie-column-format.cc (set_chord_outline): add dots into
+ skyline extents. This fixes tie formatting if the left head has dots.
+
+ * lily/tie.cc (get_configuration): only shift tie by a whole staff
+ space inside the staff.
+ (get_configuration): shift another position if necessary in case
+ of left head tie
+
2005-11-12 Han-Wen Nienhuys <hanwen@xs4all.nl>
* stepmake/stepmake/texinfo-vars.make (GENERATE_OMF): use
#include "item.hh"
#include "staff-symbol-referencer.hh"
#include "directional-element-interface.hh"
+#include "rhythmic-head.hh"
#include <set>
Real staff_space = Staff_symbol_referencer::staff_space (bounds[0]);
Array<Box> boxes;
- Interval x_union;
Grob *stem = 0;
for (int i = 0; i < bounds.size (); i++)
Interval x = head->extent (common, X_AXIS);
boxes.push (Box (x, y));
- x_union.unite (x);
+
+ Grob *dots = Rhythmic_head::get_dots (head);
+ if (d == LEFT && dots)
+ {
+ Interval x = dots->extent (common, X_AXIS);
+ Interval y (-0.5, 0.5);
+ y.translate (Staff_symbol_referencer::get_position (dots));
+ y *= staff_space * 0.5;
+
+ boxes.push (Box (x, y));
+ }
}
(*skyline) = empty_skyline (-d);
conf->position_ += conf->dir_;
in_space = !in_space;
+ if (conf->position_ == dot_pos)
+ {
+ conf->position_ += conf->dir_;
+ in_space = !in_space;
+ }
+
if (skylines)
{
Real y = staff_space * 0.5 * conf->position_;
// trigger Tie-column
(void) get_grob_direction (me);
+ Grob *yparent = me->get_parent (Y_AXIS);
+ if (Tie_column::has_interface (yparent)
+ && unsmob_grob_array (yparent->get_object ("ties"))
+ && unsmob_grob_array (yparent->get_object ("ties"))->size () > 1)
+ {
+ /* trigger positioning. */
+ (void) yparent->get_property ("positioning-done");
+ }
+
if (!scm_is_pair (me->get_property ("control-points")))
{
set_default_control_points (me);