fix to PR 8900

svn: r7526
This commit is contained in:
Robby Findler 2007-10-18 22:12:59 +00:00
parent 012895cbfe
commit 81e5a24390
2 changed files with 11 additions and 8 deletions

View File

@ -156,7 +156,6 @@ the state transitions / contracts are:
p
value)]))
ps values)
((preferences:low-level-put-preferences)
(map add-pref-prefix ps)
(map (λ (p value) (marshall-pref p value))

View File

@ -185,7 +185,7 @@ the state transitions / contracts are:
(define (hide-dialog)
(when preferences-dialog
(send preferences-dialog show #f)))
(send preferences-dialog close)))
(define (show-dialog)
(if preferences-dialog
@ -207,18 +207,23 @@ the state transitions / contracts are:
(define (make-preferences-dialog)
(letrec ([stashed-prefs (preferences:get-prefs-snapshot)]
[cancelled? #t]
[frame-stashed-prefs%
(class frame:basic%
(inherit close)
(define/override (on-subwindow-char receiver event)
(cond
[(eq? 'escape (send event get-key-code))
(cancel-callback)]
(close)]
[else
(super on-subwindow-char receiver event)]))
(define/augment (on-close)
(cancel-callback))
(when cancelled?
(preferences:restore-prefs-snapshot stashed-prefs)))
(define/override (show 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)))
(super show on?))
(super-new))]
@ -275,10 +280,9 @@ the state transitions / contracts are:
(for-each
(λ (f) (f))
on-close-dialog-callbacks)
(hide-dialog)))]
[cancel-callback (λ ()
(hide-dialog)
(preferences:restore-prefs-snapshot stashed-prefs))])
(set! cancelled? #f)
(send frame close)))]
[cancel-callback (λ () (send frame close))])
(new button%
[label (string-constant revert-to-defaults)]
[callback