repair keep-with-next (fixes #30)

main
Matthew Butterick 5 years ago
parent 45e834ba26
commit ee2d976690

@ -124,12 +124,13 @@
#:draw-start (if draw-debug-line? draw-debug void)))
(define-quad line-spacer-quad line-break-quad ())
(define q:line-spacer (q #:type line-spacer-quad
#:size (pt 20 (* default-line-height 0.6))
#:from 'sw
#:to 'nw
#:printable (λ (q sig) (not (memq sig '(start end))))
#:draw-start (if (draw-debug-line?) draw-debug void)))
(define (make-post-paragraph-spacer)
(q #:type line-spacer-quad
#:size (pt 20 (* default-line-height 0.6))
#:from 'sw
#:to 'nw
#:printable (λ (q sig) (not (memq sig '(start end))))
#:draw-start (if (draw-debug-line?) draw-debug void)))
(define softies (map string '(#\space #\- #\u00AD)))
@ -333,10 +334,10 @@
elems)]) 'sw))]))]
[_ null])]))
(append new-lines (match ending-q
[(? page-break-quad?) (list ending-q)] ; hard page break
[any #:when any null] ; hard line break
[_ (list (struct-copy quad q:line-spacer
[attrs (hash-copy (quad-attrs q:line-spacer))]))]))) ; paragraph break
[(? page-break-quad? page-break) (list page-break)] ; hard page break
[#false (list (make-post-paragraph-spacer))] ; paragraph break
[_ null]))) ; hard line break
(define (line-wrap qs wrap-size)
(match qs

Loading…
Cancel
Save