From 734ea1b5b3f38a700941c51c767d2b6a0b402c3e Mon Sep 17 00:00:00 2001 From: David Nalesnik Date: Mon, 9 Mar 2015 10:16:55 -0500 Subject: [PATCH] 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. --- scm/output-lib.scm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) 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)) -- 2.39.2