Marcel Taeumel uploaded a new version of ST80 to project The Trunk: http://source.squeak.org/trunk/ST80-mt.248.mcz
==================== Summary ====================
Name: ST80-mt.248 Author: mt Time: 25 February 2020, 3:12:26.773399 pm UUID: 17a7a172-a0e4-fa46-89c9-da27f537f779 Ancestors: ST80-mt.247
Fixes an issue with debugging a process at hand, which is used when entering MVC as recovery for Morphic. Example: "[ 3 + 4 ] newProcess debug".
After this fix, the strange re-draw glitches are gone. BUT, the debugger opens only after, for example, opening the world menu once. That's related to #addDeferredUIMessage: and not having the right controller at hand in #enterForEmergencyRecovery. Not that important for 5.3.
=============== Diff against ST80-mt.247 ===============
Item was changed: ----- Method: MVCDebugger class>>openOn:context:label:contents:fullView: (in category 'opening') ----- openOn: processToDebug context: context label: title contents: contentsStringOrNil fullView: full "Open a notifier in response to an error, halt, or notify. A notifier view just shows a short view of the sender stack and provides a menu that lets the user open a full debugger."
| debugger cm ac acp wasActive | cm := Project current world. "controller manager" ac := cm activeController. acp := cm activeControllerProcess. "the ui process" wasActive := cm inActiveControllerProcess. debugger := self new process: processToDebug "Keep track of the controller if it matches." controller: (acp == processToDebug ifTrue: [ac]) context: context.
full ifTrue: [debugger openFullNoSuspendLabel: title] ifFalse: [debugger openNotifierNoSuspendContents: contentsStringOrNil label: title].
"Try drawing the debugger tool at least once to avoid freeze." Project current restoreDisplay.
+ "If we are in a helper process, #openNoTerminate WILL NOT activate the debugger's controller. Example: user-interrupt request (cmd+dot)." - "If we are in a helper process, #openNoTerminate WILL NOT activate the debugger's controller." (acp == processToDebug and: [wasActive not]) ifTrue: [ [cm searchForActiveController] fork ]. + "Be sure to suspend the process we want to debug now." processToDebug suspend. + + "If we are NOT in a helper process, #openNoTerminate WILL NOT terminate the active controller's process." + (acp ~~ processToDebug and: [wasActive]) + ifTrue: [ Processor terminateActive ]. "Get here only if active process is not the process-to-debug. Use helper process if you want to access this return value." ^ debugger!
packages@lists.squeakfoundation.org