From: Joe Neeman Date: Sun, 11 Nov 2007 22:38:34 +0000 (+1100) Subject: Fix 446 and 506. X-Git-Tag: release/2.11.35-1~41^2~8 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=18ad3a686c7b46eb50f8abdcd5070ed58558f66b;p=lilypond.git Fix 446 and 506. Prevent grobs with 'avoid-slur = 'around from messing up cross-staff stuff. --- diff --git a/lily/script-interface.cc b/lily/script-interface.cc index 6db959113e..b965959d5d 100644 --- a/lily/script-interface.cc +++ b/lily/script-interface.cc @@ -79,7 +79,18 @@ Script_interface::calc_cross_staff (SCM smob) { Grob *me = unsmob_grob (smob); Grob *stem = Note_column::get_stem (me->get_parent (X_AXIS)); - return scm_from_bool (stem && to_boolean (stem->get_property ("cross-staff"))); + + if (stem && to_boolean (stem->get_property ("cross-staff"))) + return SCM_BOOL_T; + + Grob *slur = unsmob_grob (me->get_object ("slur")); + SCM avoid_slur = me->get_property ("avoid-slur"); + if (slur && to_boolean (slur->get_property ("cross-staff")) + && (avoid_slur == ly_symbol2scm ("outside") + || avoid_slur == ly_symbol2scm ("around"))) + return SCM_BOOL_T; + + return SCM_BOOL_F; } MAKE_SCHEME_CALLBACK (Script_interface, print, 1); diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index a93a209eb7..a1ba5c399b 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -1828,6 +1828,7 @@ (avoid-slur . around) (slur-padding . 0.5) (script-priority . 200) + (cross-staff . ,ly:script-interface::calc-cross-staff) ;; todo: add X self alignment? (meta . ((class . Item) (interfaces . (text-script-interface