change the behavior for closing the preferences window.

closes PR 11473

original commit: 2125535e06111dd9fb17203205161582c446bdab
This commit is contained in:
Robby Findler 2010-11-30 09:55:18 -06:00
parent 653df4ac44
commit 16f70bd22c

View File

@ -206,13 +206,14 @@ 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] [cancelled? #f]
[frame-stashed-prefs% [frame-stashed-prefs%
(class frame:basic% (class frame:basic%
(inherit close) (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))
(set! cancelled? #t)
(close)] (close)]
[else [else
(super on-subwindow-char receiver event)])) (super on-subwindow-char receiver event)]))
@ -222,7 +223,7 @@ the state transitions / contracts are:
(define/override (show on?) (define/override (show on?)
(when on? (when on?
;; reset the flag and save new prefs when the window becomes visible ;; reset the flag and save new prefs when the window becomes visible
(set! cancelled? #t) (set! cancelled? #f)
(set! stashed-prefs (preferences:get-prefs-snapshot))) (set! stashed-prefs (preferences:get-prefs-snapshot)))
(super show on?)) (super show on?))
(super-new))] (super-new))]
@ -280,9 +281,10 @@ the state transitions / contracts are:
(for-each (for-each
(λ (f) (f)) (λ (f) (f))
on-close-dialog-callbacks) on-close-dialog-callbacks)
(set! cancelled? #f)
(send frame close)))] (send frame close)))]
[cancel-callback (λ () (send frame close))]) [cancel-callback (λ ()
(set! cancelled? #t)
(send frame close))])
(new button% (new button%
[label (string-constant revert-to-defaults)] [label (string-constant revert-to-defaults)]
[callback [callback