Make layout-driver commit to a single kind of layout per request

This commit is contained in:
Tony Garnock-Jones 2016-09-28 05:07:50 -04:00
parent 7a2809cff9
commit 0af3cbee16
1 changed files with 8 additions and 9 deletions

17
gui.rkt
View File

@ -126,15 +126,14 @@
(if (number? v) (exact->inexact v) v))
(actor #:name 'layout-driver
(during/actor (observe (layout-solution $container-id (horizontal-layout _) _ _))
#:name (list 'horizontal-layout container-id)
(solve-hv-layout #f container-id))
(during/actor (observe (layout-solution $container-id (vertical-layout _) _ _))
#:name (list 'vertical-layout container-id)
(solve-hv-layout #t container-id))
(during/actor (observe (layout-solution $container-id (tabular-layout _ _) _ _))
#:name (list 'tabular-layout container-id)
(solve-tabular-layout container-id)))
(during/actor (observe (layout-solution $container-id _ _ _))
#:name (list 'layout container-id)
(stop-when (asserted (observe (layout-solution container-id (horizontal-layout _) _ _)))
(react (solve-hv-layout #f container-id)))
(stop-when (asserted (observe (layout-solution container-id (vertical-layout _) _ _)))
(react (solve-hv-layout #t container-id)))
(stop-when (asserted (observe (layout-solution container-id (tabular-layout _ _) _ _)))
(react (solve-tabular-layout container-id)))))
(define (solve-hv-layout vertical? container-id)
(define ctor (if vertical? vertical-layout horizontal-layout))