|
|
|
@ -10,7 +10,8 @@
|
|
|
|
|
racket/unsafe/ops
|
|
|
|
|
"attrs.rkt"
|
|
|
|
|
"param.rkt"
|
|
|
|
|
"font.rkt")
|
|
|
|
|
"font.rkt"
|
|
|
|
|
"log.rkt")
|
|
|
|
|
(provide (all-defined-out))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -369,7 +370,7 @@
|
|
|
|
|
#:soft-break soft-break-for-line?
|
|
|
|
|
#:finish-wrap (finish-line-wrap line-q))))]))
|
|
|
|
|
|
|
|
|
|
(define (make-nobreak! q) (quad-set! q :no-colbr "true")) ; cooperates with col-wrap
|
|
|
|
|
(define (make-nobreak! q) (quad-set! q :no-colbr #true)) ; cooperates with col-wrap
|
|
|
|
|
|
|
|
|
|
(define (do-keep-with-next! reversed-lines)
|
|
|
|
|
;; paints nobreak onto spacers that follow keep-with-next lines
|
|
|
|
@ -495,15 +496,26 @@
|
|
|
|
|
(quad-ref first-line :border-color-bottom) bw-bottom)
|
|
|
|
|
(box-side left (+ bottom (half bw-bottom)) left (- top (half bw-top))
|
|
|
|
|
(quad-ref first-line :border-color-left) bw-left)
|
|
|
|
|
(case (quad-ref first-line :block-clip #false)
|
|
|
|
|
[(#true "true")
|
|
|
|
|
(case (quad-ref first-line :block-clip)
|
|
|
|
|
[(#true)
|
|
|
|
|
(when (eq? (log-clipping?) 'warn)
|
|
|
|
|
(for ([line (in-list (quad-elems q))])
|
|
|
|
|
(define line-width (pt-x (size line)))
|
|
|
|
|
(define line-elem-width (for/sum ([q (in-list (quad-elems line))])
|
|
|
|
|
(pt-x (size q))))
|
|
|
|
|
(when (< line-width line-elem-width)
|
|
|
|
|
(define error-str (apply string-append (for/list ([q (in-list (quad-elems line))])
|
|
|
|
|
(match (quad-elems q)
|
|
|
|
|
[(list (? string? str)) str]
|
|
|
|
|
[_ ""]))))
|
|
|
|
|
(log-quadwriter-warning (format "clipping overfull line: ~v" error-str)))))
|
|
|
|
|
(save doc)
|
|
|
|
|
(rect doc left top width height)
|
|
|
|
|
(clip doc)]))
|
|
|
|
|
|
|
|
|
|
(define ((block-draw-end first-line) q doc)
|
|
|
|
|
(case (quad-ref first-line :block-clip #false)
|
|
|
|
|
[(#true "true") (restore doc)])
|
|
|
|
|
(case (quad-ref first-line :block-clip)
|
|
|
|
|
[(#true) (restore doc)])
|
|
|
|
|
(when (draw-debug-block?)
|
|
|
|
|
(draw-debug q doc "#6c6" "#9c9")))
|
|
|
|
|
|
|
|
|
@ -561,8 +573,8 @@
|
|
|
|
|
|
|
|
|
|
(define ((page-finish-wrap page-quad path) cols q0 q page-idx)
|
|
|
|
|
(define elems
|
|
|
|
|
(match (quad-ref (car cols) :footer-display "true")
|
|
|
|
|
[(or "false" "none") (from-parent cols 'nw)]
|
|
|
|
|
(match (quad-ref (car cols) :footer-display #true)
|
|
|
|
|
[(or #false "none") (from-parent cols 'nw)]
|
|
|
|
|
[_ (cons (make-footer-quad page-idx path) (from-parent cols 'nw))]))
|
|
|
|
|
(list (quad-copy page-quad [elems elems])))
|
|
|
|
|
|
|
|
|
|