improved cancelling behavior

svn: r6041
This commit is contained in:
Robby Findler 2007-04-25 14:45:09 +00:00
parent 6bb7e97a85
commit 851293fbf0

View File

@ -176,6 +176,14 @@ the state transitions / contracts are:
(letrec ([stashed-prefs (preferences:get-prefs-snapshot)] (letrec ([stashed-prefs (preferences:get-prefs-snapshot)]
[frame-stashed-prefs% [frame-stashed-prefs%
(class frame:basic% (class frame:basic%
(define/override (on-subwindow-char receiver event)
(cond
[(eq? 'escape (send event get-key-code))
(cancel-callback)]
[else
(super on-subwindow-char receiver event)]))
(define/augment (on-close)
(cancel-callback))
(define/override (show on?) (define/override (show on?)
(when on? (when on?
(set! stashed-prefs (preferences:get-prefs-snapshot))) (set! stashed-prefs (preferences:get-prefs-snapshot)))
@ -235,7 +243,7 @@ the state transitions / contracts are:
(λ (f) (f)) (λ (f) (f))
on-close-dialog-callbacks) on-close-dialog-callbacks)
(hide-dialog)))] (hide-dialog)))]
[cancel-callback (λ (_1 _2) [cancel-callback (λ ()
(hide-dialog) (hide-dialog)
(preferences:restore-prefs-snapshot stashed-prefs))]) (preferences:restore-prefs-snapshot stashed-prefs))])
(new button% (new button%
@ -248,7 +256,7 @@ the state transitions / contracts are:
(gui-utils:ok/cancel-buttons (gui-utils:ok/cancel-buttons
bottom-panel bottom-panel
ok-callback ok-callback
cancel-callback) (λ (a b) (cancel-callback)))
(make-object grow-box-spacer-pane% bottom-panel) (make-object grow-box-spacer-pane% bottom-panel)
(send* bottom-panel (send* bottom-panel
(stretchable-height #f) (stretchable-height #f)