From 9616d1ca9b3948f364514d3c2a27f8f5979ee5c3 Mon Sep 17 00:00:00 2001 From: Christoph Finkensiep Date: Fri, 17 Nov 2017 00:43:17 +0100 Subject: [PATCH] fix dot problem in merge-rests-engraver The merge-rests-engraver did not merge the dots of several dotted rests resulting in multiple stacked dots on a single merged rest. This commit fixes the issue by removing the dots from all merged rests except one. Since the engraver only merges rests with the same length, it should not matter which rest keeps the dots, so we take the first. --- editorial-tools/merge-rests-engraver/module.ily | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/editorial-tools/merge-rests-engraver/module.ily b/editorial-tools/merge-rests-engraver/module.ily index 34858867..d00e3d6b 100644 --- a/editorial-tools/merge-rests-engraver/module.ily +++ b/editorial-tools/merge-rests-engraver/module.ily @@ -30,10 +30,15 @@ (stop-translation-timestep . ,(lambda (trans) (if (and (has-at-least-two rests) (all-equal rests rest-same-length)) - (for-each - (lambda (rest) - (ly:grob-set-property! rest 'Y-offset 0)) - rests)))) + (begin + (for-each + (lambda (rest) + (ly:grob-set-property! rest 'Y-offset 0)) + rests) + (for-each + (lambda (rest) + (ly:grob-set-property! (ly:grob-object rest 'dot) 'dot-count 0)) + (cdr rests)))))) (acknowledgers (rest-interface . ,(lambda (engraver grob source-engraver) (if (eq? 'Rest (assoc-ref