diff --git a/gui.rkt b/gui.rkt index 7093952..655a3d5 100644 --- a/gui.rkt +++ b/gui.rkt @@ -1,6 +1,7 @@ #lang syndicate/actor (require racket/set) +(require data/order) (require (prefix-in i: 2htdp/image)) (require (prefix-in p: pict)) (require syndicate-gl/2d) @@ -111,8 +112,11 @@ (run-pop-up-menu menu-id x y x-pin y-pin release-event))) (define (menu-item-order-key i) - (cond [(menu-item? i) (menu-item-order i)] - [(menu-separator? i) (menu-separator-order i)])) + (define v (cond [(menu-item? i) (menu-item-order i)] + [(menu-separator? i) (menu-separator-order i)])) + (if (number? v) + (exact->inexact v) + v)) (define (run-pop-up-menu menu-id pop-up-cursor-x pop-up-cursor-y x-pin y-pin release-event) (define instance-id (list menu-id (gensym 'instance))) @@ -125,7 +129,8 @@ (define/query-set separators ($ s (menu-separator menu-id _)) s) (define/dataflow ordered-items (sort (append (set->list (items)) (set->list (separators))) - < #:key menu-item-order-key) + (order-