fix to PR 8900
svn: r7526
This commit is contained in:
parent
012895cbfe
commit
81e5a24390
|
@ -156,7 +156,6 @@ the state transitions / contracts are:
|
||||||
p
|
p
|
||||||
value)]))
|
value)]))
|
||||||
ps values)
|
ps values)
|
||||||
|
|
||||||
((preferences:low-level-put-preferences)
|
((preferences:low-level-put-preferences)
|
||||||
(map add-pref-prefix ps)
|
(map add-pref-prefix ps)
|
||||||
(map (λ (p value) (marshall-pref p value))
|
(map (λ (p value) (marshall-pref p value))
|
||||||
|
|
|
@ -185,7 +185,7 @@ the state transitions / contracts are:
|
||||||
|
|
||||||
(define (hide-dialog)
|
(define (hide-dialog)
|
||||||
(when preferences-dialog
|
(when preferences-dialog
|
||||||
(send preferences-dialog show #f)))
|
(send preferences-dialog close)))
|
||||||
|
|
||||||
(define (show-dialog)
|
(define (show-dialog)
|
||||||
(if preferences-dialog
|
(if preferences-dialog
|
||||||
|
@ -207,18 +207,23 @@ the state transitions / contracts are:
|
||||||
|
|
||||||
(define (make-preferences-dialog)
|
(define (make-preferences-dialog)
|
||||||
(letrec ([stashed-prefs (preferences:get-prefs-snapshot)]
|
(letrec ([stashed-prefs (preferences:get-prefs-snapshot)]
|
||||||
|
[cancelled? #t]
|
||||||
[frame-stashed-prefs%
|
[frame-stashed-prefs%
|
||||||
(class frame:basic%
|
(class frame:basic%
|
||||||
|
(inherit close)
|
||||||
(define/override (on-subwindow-char receiver event)
|
(define/override (on-subwindow-char receiver event)
|
||||||
(cond
|
(cond
|
||||||
[(eq? 'escape (send event get-key-code))
|
[(eq? 'escape (send event get-key-code))
|
||||||
(cancel-callback)]
|
(close)]
|
||||||
[else
|
[else
|
||||||
(super on-subwindow-char receiver event)]))
|
(super on-subwindow-char receiver event)]))
|
||||||
(define/augment (on-close)
|
(define/augment (on-close)
|
||||||
(cancel-callback))
|
(when cancelled?
|
||||||
|
(preferences:restore-prefs-snapshot stashed-prefs)))
|
||||||
(define/override (show on?)
|
(define/override (show on?)
|
||||||
(when on?
|
(when on?
|
||||||
|
;; reset the flag and save new prefs when the window becomes visible
|
||||||
|
(set! cancelled? #t)
|
||||||
(set! stashed-prefs (preferences:get-prefs-snapshot)))
|
(set! stashed-prefs (preferences:get-prefs-snapshot)))
|
||||||
(super show on?))
|
(super show on?))
|
||||||
(super-new))]
|
(super-new))]
|
||||||
|
@ -275,10 +280,9 @@ the state transitions / contracts are:
|
||||||
(for-each
|
(for-each
|
||||||
(λ (f) (f))
|
(λ (f) (f))
|
||||||
on-close-dialog-callbacks)
|
on-close-dialog-callbacks)
|
||||||
(hide-dialog)))]
|
(set! cancelled? #f)
|
||||||
[cancel-callback (λ ()
|
(send frame close)))]
|
||||||
(hide-dialog)
|
[cancel-callback (λ () (send frame close))])
|
||||||
(preferences:restore-prefs-snapshot stashed-prefs))])
|
|
||||||
(new button%
|
(new button%
|
||||||
[label (string-constant revert-to-defaults)]
|
[label (string-constant revert-to-defaults)]
|
||||||
[callback
|
[callback
|
||||||
|
|
Loading…
Reference in New Issue
Block a user