diff --git a/pict-lib/pict/private/pict.rkt b/pict-lib/pict/private/pict.rkt index fd5dc7d..06a2e1f 100644 --- a/pict-lib/pict/private/pict.rkt +++ b/pict-lib/pict/private/pict.rkt @@ -572,10 +572,13 @@ (define (panorama p) (let-values ([(x1 y1 x2 y2 ay dy) (panorama-box! p)]) - (let ([h (- y2 y1)]) - (place-over (blank (- x2 x1) h (- h ay) dy) - (- x1) (- y2 (pict-height p)) - p)))) + (place-over (blank (- x2 x1) + (- y2 y1) + (- y2 ay) + (- dy y1)) + (- x1) + (- y2 (pict-height p)) + p))) (define (clip-descent b) (let* ([w (pict-width b)] diff --git a/pict-test/tests/pict/main.rkt b/pict-test/tests/pict/main.rkt index c146ec8..03041c9 100644 --- a/pict-test/tests/pict/main.rkt +++ b/pict-test/tests/pict/main.rkt @@ -531,6 +531,11 @@ (check-equal? (pict-width (rotate (rectangle 10 10) pi)) (pict-width (panorama (rotate (rectangle 10 10) pi)))) +;; check panorama descent calculation (racket/pict#63) +(let () + (define p (panorama (pin-over (hline 40 2) 36 -4 (arrowhead 10 0)))) + (check-equal? (pict-descent p) 0)) + ;;;; contract tests (test-case "dingbats-contracts"