add keyboard shortcuts to unsaved dialog warning on mac os x
closes PR 12927 closes PR 10708 closes PR 8996 original commit: 64fd649ee573c73499566b7cbb77271842a33ab7
This commit is contained in:
parent
64c4456dc0
commit
88bac3bab9
|
@ -230,9 +230,30 @@
|
|||
(λ () (thunk))
|
||||
(λ () (cursor-off))))])))
|
||||
|
||||
(define unsaved-warning
|
||||
(lambda (filename action-anyway (can-save-now? #f) (parent #f) [cancel? #t])
|
||||
(let ([mb-res (message-box/custom
|
||||
(define (unsaved-warning filename action-anyway [can-save-now? #f] [parent #f] [cancel? #t])
|
||||
(define key-closed #f)
|
||||
(define (unsaved-warning-mixin %)
|
||||
(class %
|
||||
(inherit show)
|
||||
(define/override (on-subwindow-char receiver evt)
|
||||
(define (is-menu-key? char)
|
||||
(and (send evt get-meta-down)
|
||||
(equal? (send evt get-key-code) char)))
|
||||
(cond
|
||||
[(is-menu-key? #\d)
|
||||
(set! key-closed 'continue)
|
||||
(show #f)]
|
||||
[(is-menu-key? #\s)
|
||||
(set! key-closed 'save)
|
||||
(show #f)]
|
||||
[(is-menu-key? #\c)
|
||||
(set! key-closed 'cancel)
|
||||
(show #f)]
|
||||
[else
|
||||
(super on-subwindow-char receiver evt)]))
|
||||
(super-new)))
|
||||
(define mb-res
|
||||
(message-box/custom
|
||||
(string-constant warning)
|
||||
(format (string-constant file-is-not-saved) filename)
|
||||
(string-constant save)
|
||||
|
@ -242,11 +263,15 @@
|
|||
(if can-save-now?
|
||||
'(default=1 caution)
|
||||
'(default=2 caution))
|
||||
2)])
|
||||
2
|
||||
#:dialog-mixin (if (equal? (system-type) 'macosx)
|
||||
unsaved-warning-mixin
|
||||
values)))
|
||||
(or key-closed
|
||||
(case mb-res
|
||||
[(1) 'save]
|
||||
[(2) 'cancel]
|
||||
[(3) 'continue]))))
|
||||
[(3) 'continue])))
|
||||
|
||||
(define get-choice
|
||||
(lambda (message
|
||||
|
|
Loading…
Reference in New Issue
Block a user