From 425cfa585650ffad742403ba0927518478323c54 Mon Sep 17 00:00:00 2001 From: Keith OHara Date: Sun, 30 Nov 2014 21:43:57 -0800 Subject: [PATCH] partcombine: wait to apply forced strategies until parts are synched issue 4061 --- input/regression/part-combine-force-once.ly | 2 ++ scm/part-combiner.scm | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/input/regression/part-combine-force-once.ly b/input/regression/part-combine-force-once.ly index 6b784513dc..76a230b7e8 100644 --- a/input/regression/part-combine-force-once.ly +++ b/input/regression/part-combine-force-once.ly @@ -16,6 +16,7 @@ mI = \relative c' { c \partcombineUnisonoOnce c c c | \partcombineAutomatic \partcombineSoloIOnce r2 c4 c | \partcombineSoloIIOnce R1 | + d'2 \partcombineChordsOnce d4^"1 chord" d| } mII = \relative c' { c4 \partcombineApartOnce c c c | @@ -23,6 +24,7 @@ mII = \relative c' { c c c c | R1 | r2 c4 c | + b4 b b b | } \score { diff --git a/scm/part-combiner.scm b/scm/part-combiner.scm index 83a5a2e330..4b65ea04ca 100644 --- a/scm/part-combiner.scm +++ b/scm/part-combiner.scm @@ -319,9 +319,11 @@ LilyPond version 2.8 and earlier." (if (< result-idx (vector-length result)) (let* ((now-state (vector-ref result result-idx)) ; current result ;; Extract all part-combine force events - (ev1 (part-combine-events (car (voice-states now-state)))) - (ev2 (part-combine-events (cdr (voice-states now-state)))) - (evts (append ev1 ev2)) + (evts (if (synced? now-state) + (append + (part-combine-events (car (voice-states now-state))) + (part-combine-events (cdr (voice-states now-state)))) + '())) ;; result is (once-state permament-state): (state (fold forced-result (cons 'automatic prev-res) evts)) ;; Now let once override permanent changes: -- 2.39.5