From 155c3f5c38a6ac518dde09a8da6b199ec107f810 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Tue, 1 Nov 2022 06:50:18 +0100 Subject: crossfade: Set default attribute fade time Previously it was zero, which is almost never what we want. Now it's the smaller of the up and down times. --- guile/starlet/crossfade.scm | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'guile') diff --git a/guile/starlet/crossfade.scm b/guile/starlet/crossfade.scm index e92e9e6..241f295 100644 --- a/guile/starlet/crossfade.scm +++ b/guile/starlet/crossfade.scm @@ -205,20 +205,19 @@ (define* (crossfade up-time #:optional - inp-down-time + down-time #:key - (attr-time 0) + (attr-time #f) (up-delay 0) (down-delay 0) (attr-delay 0)) - (let ((down-time (if inp-down-time - inp-down-time - up-time))) + (let* ((real-down-time (if down-time down-time up-time)) + (real-attr-time (if attr-time attr-time (min up-time real-down-time)))) (make-transition (incoming-state current-state clock) (let ((up-clock (make-delayed-clock clock up-delay up-time)) - (down-clock (make-delayed-clock clock down-delay down-time)) - (attribute-clock (make-delayed-clock clock attr-delay attr-time))) + (down-clock (make-delayed-clock clock down-delay real-down-time)) + (attribute-clock (make-delayed-clock clock attr-delay real-attr-time))) (let ((overlay-state (make-empty-state))) (state-for-each (lambda (fixture attr target-val) @@ -256,5 +255,5 @@ (values overlay-state (max (+ up-time up-delay) - (+ down-time down-delay) - (+ attr-time attr-delay)))))))) + (+ real-down-time down-delay) + (+ real-attr-time attr-delay)))))))) -- cgit v1.2.3