close current macro stepper frame on Run, Macro Stepper, etc
closes PR 11964
This commit is contained in:
parent
a14723f27a
commit
0b47f0b7e2
|
@ -42,6 +42,7 @@
|
|||
(define drscheme-macro-stepper-director%
|
||||
(class macro-stepper-director%
|
||||
(init-field filename)
|
||||
(inherit-field stepper-frames)
|
||||
(define eventspace (current-eventspace))
|
||||
|
||||
(define stepper #f)
|
||||
|
@ -71,6 +72,12 @@
|
|||
(filename filename)
|
||||
(director this))))
|
||||
|
||||
(define/public (shutdown)
|
||||
(when (pref:close-on-reset-console?)
|
||||
(for ([(frame flags) (in-hash stepper-frames)])
|
||||
(unless (memq 'no-obsolete flags)
|
||||
(send frame show #f)))))
|
||||
|
||||
(super-new)))
|
||||
|
||||
|
||||
|
@ -256,6 +263,7 @@
|
|||
(super reset-console)
|
||||
(when current-stepper-director
|
||||
(send current-stepper-director add-obsoleted-warning)
|
||||
(send current-stepper-director shutdown)
|
||||
(set! current-stepper-director #f))
|
||||
|
||||
;; setting the eval handler at this point disables CM,
|
||||
|
|
|
@ -207,6 +207,9 @@
|
|||
(menu-option/notify-box extras-menu
|
||||
"Refresh on resize"
|
||||
(get-field refresh-on-resize? config))
|
||||
(menu-option/notify-box extras-menu
|
||||
"Close old stepper on Run"
|
||||
(get-field close-on-reset-console? config))
|
||||
(menu-option/notify-box extras-menu
|
||||
"Draw binding arrows"
|
||||
(get-field draw-arrows? config))
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
unstable/gui/notify
|
||||
unstable/gui/prefs)
|
||||
(provide pref:macro-step-limit
|
||||
pref:close-on-reset-console?
|
||||
macro-stepper-config-base%
|
||||
macro-stepper-config/prefs%
|
||||
macro-stepper-config/prefs/readonly%)
|
||||
|
@ -30,6 +31,7 @@
|
|||
(preferences:set-default 'MacroStepper:MacroStepLimit 40000
|
||||
(lambda (x) (or (eq? x #f) (exact-positive-integer? x))))
|
||||
(preferences:set-default 'MacroStepper:RefreshOnResize? #t boolean?)
|
||||
(preferences:set-default 'MacroStepper:CloseOnResetConsole? #t boolean?)
|
||||
|
||||
(define pref:width (pref:get/set 'MacroStepper:Frame:Width))
|
||||
(define pref:height (pref:get/set 'MacroStepper:Frame:Height))
|
||||
|
@ -50,6 +52,7 @@
|
|||
(define pref:split-context? (pref:get/set 'MacroStepper:SplitContext?))
|
||||
(define pref:macro-step-limit (pref:get/set 'MacroStepper:MacroStepLimit))
|
||||
(define pref:refresh-on-resize? (pref:get/set 'MacroStepper:RefreshOnResize?))
|
||||
(define pref:close-on-reset-console? (pref:get/set 'MacroStepper:CloseOnResetConsole?))
|
||||
|
||||
(define macro-stepper-config-base%
|
||||
(class* prefs-base% (config<%>)
|
||||
|
@ -75,7 +78,8 @@
|
|||
(extra-navigation? pref:extra-navigation?)
|
||||
(debug-catch-errors? pref:debug-catch-errors?)
|
||||
(split-context? pref:split-context?)
|
||||
(refresh-on-resize? pref:refresh-on-resize?))
|
||||
(refresh-on-resize? pref:refresh-on-resize?)
|
||||
(close-on-reset-console? pref:close-on-reset-console?))
|
||||
(super-new)))
|
||||
|
||||
(define macro-stepper-config/prefs%
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
(define macro-stepper-director%
|
||||
(class* object% (director<%>)
|
||||
(define stepper-frames (make-hasheq))
|
||||
(field [stepper-frames (make-hasheq)])
|
||||
|
||||
;; Flags is a subset(list) of '(no-obsolete no-new-traces)
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user