X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ftie.cc;h=1d4e7fca9ac296659d01bfdfd2deaeae3e9f7df6;hb=8568b93d6c2a74b97640f0997bd6b80d26195204;hp=1e94638f3981e5ad3551d94d2df8dc1704f15fa0;hpb=e42585017a01fd02f6353b994cf0c87b03a7bb2e;p=lilypond.git diff --git a/lily/tie.cc b/lily/tie.cc index 1e94638f39..1d4e7fca9a 100644 --- a/lily/tie.cc +++ b/lily/tie.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2006 Han-Wen Nienhuys + (c) 1997--2007 Han-Wen Nienhuys */ #include "tie.hh" @@ -148,7 +148,8 @@ Tie::calc_direction (SCM smob) if ((Tie_column::has_interface (yparent) || Semi_tie_column::has_interface (yparent)) && unsmob_grob_array (yparent->get_object ("ties")) - && unsmob_grob_array (yparent->get_object ("ties"))->size () > 1) + // && unsmob_grob_array (yparent->get_object ("ties"))->size () > 1 + ) { /* trigger positioning. */ (void) yparent->get_property ("positioning-done"); @@ -170,18 +171,17 @@ Tie::get_default_control_points (Grob *me_grob) Tie_formatting_problem problem; problem.from_tie (me); + Tie_specification spec = problem.get_tie_specification (0); - spec.has_manual_dir_ = true; - spec.manual_dir_ = get_grob_direction (me); - if (!me->is_live ()) return SCM_EOL; - Tie_configuration conf - = problem.find_optimal_tie_configuration (spec); + + Ties_configuration conf + = problem.generate_optimal_configuration (); return get_control_points (me, problem.common_x_refpoint (), - conf, problem.details_); + conf[0], problem.details_); } SCM @@ -211,14 +211,12 @@ Tie::calc_control_points (SCM smob) { Grob *me = unsmob_grob (smob); - // trigger Tie-column - (void) get_grob_direction (me); - Grob *yparent = me->get_parent (Y_AXIS); if ((Tie_column::has_interface (yparent) || Semi_tie_column::has_interface (yparent)) && unsmob_grob_array (yparent->get_object ("ties")) - && unsmob_grob_array (yparent->get_object ("ties"))->size () > 1) + // && unsmob_grob_array (yparent->get_object ("ties"))->size () > 1 + ) { /* trigger positioning. */ (void) yparent->get_property ("positioning-done"); @@ -234,7 +232,7 @@ Tie::calc_control_points (SCM smob) } /* - TODO: merge witnh Slur::print. + TODO: merge with Slur::print. */ MAKE_SCHEME_CALLBACK (Tie, print, 1); SCM @@ -283,8 +281,15 @@ Tie::print (SCM smob) Stencil tm = *unsmob_stencil (Text_interface::interpret_markup (me->layout ()->self_scm (), properties, quant_score)); - tm.translate_axis (b.control_[0][Y_AXIS]*2, Y_AXIS); - a.add_at_edge (X_AXIS, RIGHT, tm, 1.0, 0); + tm.translate (Offset (b.control_[3][X_AXIS] + 0.5, + b.control_[0][Y_AXIS] * 2)); + tm = tm.in_color (1, 0, 0); + + /* + It would be nice if we could put this in a different layer, + but alas, this must be done with a Tie override. + */ + a.add_stencil (tm); } #endif