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