]> git.donarmstrong.com Git - lilypond.git/commitdiff
Use elements-callback for layout-instruction event reinterpretation
authorDavid Kastrup <dak@gnu.org>
Sat, 10 Mar 2012 15:24:33 +0000 (16:24 +0100)
committerDavid Kastrup <dak@gnu.org>
Wed, 14 Mar 2012 21:10:27 +0000 (22:10 +0100)
ly/music-functions-init.ly
scm/lily-library.scm

index 783f7990ce6483867b908900de15facbcf051ba5..80c3020ac04b7a2574ad72b85e59cad45edffaac 100644 (file)
@@ -1001,12 +1001,14 @@ a context modification duplicating their effect.")
              (ly:add-context-mod mods
                                  (list 'apply
                                        (ly:music-property m 'procedure))))
-            ((SequentialMusic SimultaneousMusic)
-             (for-each musicop (ly:music-property m 'elements)))
             ((ContextSpeccedMusic)
              (if (or (not ctx)
                      (eq? ctx (ly:music-property m 'context-type)))
-                 (musicop (ly:music-property m 'element)))))))
+                 (musicop (ly:music-property m 'element))))
+            (else
+             (let ((callback (ly:music-property m 'elements-callback)))
+               (if (procedure? callback)
+                   (for-each musicop (callback m))))))))
      (musicop music)
      mods))
 
index 514f5b40fb576f37ee1ad5321b0e4d83388dc74a..b109b81be60eb59c7122fed49d07c8d0ed8dac06 100644 (file)
@@ -285,17 +285,19 @@ bookoutput function"
             (ly:add-context-mod mods
                                 (list 'apply
                                       (ly:music-property m 'procedure))))
-           ((SequentialMusic SimultaneousMusic)
-            (fold loop context (ly:music-property m 'elements)))
            ((ContextSpeccedMusic)
             (loop (ly:music-property m 'element)
                   (ly:music-property m 'context-type)))
-           (else (if (and warn (ly:duration? (ly:music-property m 'duration)))
-                     (begin
-                       (ly:music-warning
-                        music
-                        (_ "Music unsuitable for context-mod"))
-                       (set! warn #f))))))
+           (else
+            (let ((callback (ly:music-property m 'elements-callback)))
+              (if (procedure? callback)
+                  (fold loop context (callback m))
+                  (if (and warn (ly:duration? (ly:music-property m 'duration)))
+                      (begin
+                        (ly:music-warning
+                         music
+                         (_ "Music unsuitable for context-mod"))
+                        (set! warn #f))))))))
       context)
     mods))
 
@@ -338,8 +340,6 @@ bookoutput function"
                     (ly:music-property m 'symbol)
                     (ly:music-property m 'grob-property-path)))))
          (case (ly:music-property m 'name)
-           ((SequentialMusic SimultaneousMusic)
-            (fold loop mods (ly:music-property m 'elements)))
            ((ApplyContext)
             (ly:add-context-mod mods
                                 (list 'apply
@@ -360,12 +360,16 @@ bookoutput function"
                     (ly:music-warning
                      music
                      (ly:format (_ "Cannot find context-def \\~a") sym))))))
-           (else (if (and warn (ly:duration? (ly:music-property m 'duration)))
-                     (begin
-                       (ly:music-warning
-                        music
-                        (_ "Music unsuitable for output-def"))
-                       (set! warn #f))))))
+           (else
+            (let ((callback (ly:music-property m 'elements-callback)))
+              (if (procedure? callback)
+                  (fold loop mods (callback m))
+                  (if (and warn (ly:duration? (ly:music-property m 'duration)))
+                      (begin
+                        (ly:music-warning
+                         music
+                         (_ "Music unsuitable for output-def"))
+                        (set! warn #f))))))))
       mods)))