Skip to content

Commit 406c7e0

Browse files
committed
renderer: queue updates as not high priority
This seems like a more sensible choice given that on macOS an update to a slider while sliding can interfere with the slider's state. Closes #63.
1 parent 28469c3 commit 406c7e0

File tree

4 files changed

+41
-4
lines changed

4 files changed

+41
-4
lines changed

examples/issue-63.rkt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#lang racket/base
2+
3+
(require racket/gui/easy
4+
racket/gui/easy/debugger
5+
racket/gui/easy/operator)
6+
7+
(define @a (@ 0))
8+
(define @b (@ 0))
9+
(define @b2 (obs-throttle @b))
10+
11+
(module+ main
12+
(start-debugger)
13+
(render
14+
(window
15+
(hpanel
16+
(text "Slider on @a")
17+
(slider @a #:min-value 0 #:max-value 100
18+
(λ (v) (:= @a v)))
19+
(text (obs-map @a number->string)))
20+
21+
(hpanel
22+
(text "Slider on @b")
23+
(slider @b #:min-value 0 #:max-value 100
24+
(λ (v) (:= @b v)))
25+
(text (obs-map @b number->string))
26+
(text (obs-map @b2 number->string)))
27+
28+
(hpanel
29+
(text "Slider on throttled @b")
30+
(slider @b2 #:min-value 0 #:max-value 100
31+
(λ (v) (:= @b v)))
32+
(text (obs-map @b number->string))
33+
(text (obs-map @b2 number->string))))))

gui-easy-lib/gui/easy/private/observable.rkt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,9 @@
155155
(for ([obs (in-list (reverse (unbox (obs-observers-box o))))])
156156
(with-handlers ([exn:fail?
157157
(lambda (e)
158-
((error-display-handler) (exn-message e) e))])
158+
((error-display-handler)
159+
(format "do-obs-update!: ~a" (exn-message e))
160+
e))])
159161
(obs v)))))
160162

161163
(define (obs-update! o f)

gui-easy-lib/gui/easy/private/renderer.rkt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@
6666
(for-each do-remove-dependencies depss)
6767
(parameterize ([current-renderer this])
6868
(send tree destroy root))
69-
(set! root #f)))))
69+
(set! root #f)))
70+
#;high-priority? #f))
7071

7172
(define (do-add-dependencies deps tree root) ;; noqa
7273
(define s
@@ -75,7 +76,8 @@
7576
(gui:queue-callback
7677
(lambda ()
7778
(parameterize ([current-renderer this])
78-
(send tree update root dep v)))))
79+
(send tree update root dep v)))
80+
#;high-priority? #f))
7981
(begin0 proc
8082
(obs-observe! dep proc)))))
8183
(begin0 s

gui-easy-lib/info.rkt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#lang info
22

33
(define license 'BSD-3-Clause)
4-
(define version "0.20")
4+
(define version "0.20.1")
55
(define collection "racket")
66
(define deps
77
'("base"

0 commit comments

Comments
 (0)