X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=lily%2Ftie.cc;h=27033eaeaa1baca379388244104e8dd0cdf2dd92;hb=cfc4cbf34569db6a6c8968694f86e36b206a9d05;hp=980484d21bcdaed4b0345b1fdee3f5891f5a7ffa;hpb=10fcff2ab04beb0f31888d56f22855e84c08c3a7;p=lilypond.git diff --git a/lily/tie.cc b/lily/tie.cc index 980484d21b..27033eaeaa 100644 --- a/lily/tie.cc +++ b/lily/tie.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2007 Han-Wen Nienhuys + (c) 1997--2009 Han-Wen Nienhuys */ #include "tie.hh" @@ -31,8 +31,7 @@ bool -Tie::less (Grob *const &s1, - Grob *const &s2) +Tie::less (Grob *const &s1, Grob *const &s2) { return Tie::get_position (s1) < Tie::get_position (s2); } @@ -209,7 +208,6 @@ Tie::get_control_points (Grob *me, return controls; } - MAKE_SCHEME_CALLBACK (Tie, calc_control_points, 1); SCM Tie::calc_control_points (SCM smob) @@ -219,18 +217,16 @@ Tie::calc_control_points (SCM smob) 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"))) { extract_grob_set (yparent, "ties", ties); - if (ties.size() == 1 + if (me->original() && ties.size() == 1 && !to_dir (me->get_property_data ("direction"))) { assert (ties[0] == me); set_grob_direction (me, Tie::get_default_dir (me)); - } - + + } /* trigger positioning. */ (void) yparent->get_property ("positioning-done"); } @@ -269,17 +265,11 @@ Tie::print (SCM smob) Stencil a; - SCM p = me->get_property ("dash-period"); - SCM f = me->get_property ("dash-fraction"); - if (scm_is_number (p) && scm_is_number (f)) - a = Lookup::dashed_slur (b, - line_thick, - robust_scm2double (p, 1.0), - robust_scm2double (f, 0)); - else - a = Lookup::slur (b, - get_grob_direction (me) * base_thick, - line_thick); + SCM dash_definition = me->get_property ("dash-definition"); + a = Lookup::slur (b, + get_grob_direction (me) * base_thick, + line_thick, + dash_definition); #if DEBUG_TIE_SCORING SCM annotation = me->get_property ("annotation"); @@ -319,8 +309,7 @@ ADD_INTERFACE (Tie, "annotation " "avoid-slur " // UGH. "control-points " - "dash-fraction " - "dash-period " + "dash-definition " "details " "direction " "head-direction "