]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/titling-init.ly
Nested book parts: take account of Joe's code review from 2008/11/03
[lilypond.git] / ly / titling-init.ly
index ebec85b53eef90e5412a4d4255df08d7678ed289..08b23d469d8538c99d6538502d8aa8a14e7489a3 100644 (file)
@@ -83,11 +83,24 @@ scoreTitleMarkup = \markup { \column {
       empty-stencil))
 
 #(define (last-page layout props arg)
-  (if (chain-assoc-get 'page:last? props #f)
-   (interpret-markup layout props arg)
-   empty-stencil))
+  (if (and (chain-assoc-get 'page:is-bookpart-last-page props #f)
+           (chain-assoc-get 'page:is-last-bookpart props #f))
+      (interpret-markup layout props arg)
+      empty-stencil))
+
+#(define (not-first-page layout props arg)
+  (define (ancestor layout)
+    "Return the topmost layout ancestor"
+    (let ((parent (ly:output-def-parent layout)))
+       (if (not (ly:output-def? parent))
+           layout
+           (ancestor parent))))
+  (if (not (= (chain-assoc-get 'page:page-number props -1)
+              (ly:output-def-lookup (ancestor layout) 'first-page-number)))
+      (interpret-markup layout props arg)
+      empty-stencil))
 
-%% Part first page and last page predicates
+%% Bookpart first page and last page predicates
 #(define (part-first-page layout props arg)
   (if (= (chain-assoc-get 'page:page-number props -1)
          (ly:output-def-lookup layout 'first-page-number))
@@ -95,15 +108,9 @@ scoreTitleMarkup = \markup { \column {
       empty-stencil))
 
 #(define (part-last-page layout props arg)
-  (if (chain-assoc-get 'page:part-last? props #f)
-   (interpret-markup layout props arg)
-   empty-stencil))
-
-#(define (not-first-page layout props arg)
-  (if (not (= (chain-assoc-get 'page:page-number props -1)
-              (ly:output-def-lookup layout 'first-page-number)))
-   (interpret-markup layout props arg)
-   empty-stencil))
+  (if (chain-assoc-get 'page:is-bookpart-last-page props #f)
+      (interpret-markup layout props arg)
+      empty-stencil))
 
 %% unused
 #(define (not-single-page layout props arg)