From: David Nalesnik Date: Mon, 9 Mar 2015 15:16:55 +0000 (-0500) Subject: Issue 4319: toward-stem-shift-in-column should only affect Script grobs X-Git-Tag: release/2.19.18-1~16^2~2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=734ea1b5b3f38a700941c51c767d2b6a0b402c3e;hp=ad6e870fba9146f4d0f16f0fdc30963f18ee46cc;p=lilypond.git Issue 4319: toward-stem-shift-in-column should only affect Script grobs Previously, toward-stem-shift-in-column did not discriminate between different types of grobs in the 'scripts grob-array. This meant that TextScript, StringNumber, and Fingering objects would be caught as well. This patch only shifts an articulation in the presence of another Script grob. --- diff --git a/scm/output-lib.scm b/scm/output-lib.scm index 96456b1b77..2b2a65c719 100644 --- a/scm/output-lib.scm +++ b/scm/output-lib.scm @@ -1187,8 +1187,19 @@ parent or the parent has no setting." (let* ((shift-when-alone (ly:grob-property grob 'toward-stem-shift 0.0)) (shift-in-column (ly:grob-property grob 'toward-stem-shift-in-column)) (script-column (ly:grob-object grob 'script-column)) - (shift (if (and (ly:grob? script-column) (number? shift-in-column)) - shift-in-column shift-when-alone)) + (shift + (if (and (ly:grob? script-column) + (number? shift-in-column) + ;; ScriptColumn can contain grobs other than Script. + ;; These should not result in a shift. + (any (lambda (s) + (and (not (eq? s grob)) + (grob::has-interface s 'script-interface) + (not (grob::has-interface s + 'accidental-suggestion-interface)))) + (ly:grob-array->list + (ly:grob-object script-column 'scripts)))) + shift-in-column shift-when-alone)) (note-head-location (ly:self-alignment-interface::aligned-on-x-parent grob)) (note-head-grob (ly:grob-parent grob X))