[squeak-dev] The Trunk: Morphic-mt.2067.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Jan 18 15:53:41 UTC 2023
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.2067.mcz
==================== Summary ====================
Name: Morphic-mt.2067
Author: mt
Time: 18 January 2023, 4:53:38.501866 pm
UUID: d033dad9-56ef-0a41-8599-1bd76921b05c
Ancestors: Morphic-mt.2066
*** Debugger Refactoring - Step 1 of 2 ***
Complements System-mt.1382
=============== Diff against Morphic-mt.2066 ===============
Item was added:
+ ----- Method: MorphicProject>>openDebuggerWindow: (in category 'scheduling & debugging') -----
+ openDebuggerWindow: windowOrModel
+ "Open the debugger window in the world. Verify integrity of visual representation here so that recursive-error detection kicks in immediately."
+
+ | window |
+ window := self uiManager toolBuilder open: windowOrModel.
+
+ "There are way too many #fullBounds sends. Layout errors might already have happened."
+ window allMorphsDo: [:m |
+ (m hasProperty: #errorOnLayout)
+ ifTrue: [self error: 'Layout error' translated]].
+
+ "Try layouting the debugger tool at least once to avoid freeze."
+ self world doLayout. "Not safely!! to trigger layout errors if any"
+
+ "Try redrawing the UI at least once to avoid freeze."
+ self world displayWorld. "Not safely!! to trigger drawing errors if any"!
Item was added:
+ ----- Method: MorphicProject>>resumeProcessSafely: (in category 'scheduling & debugging') -----
+ resumeProcessSafely: aProcess
+ "We only want a single UI process in Morphic. Terminate the active process if aProcess takes over as the UI process. See #uiProcess."
+
+ self restoreDisplay.
+
+ aProcess resume.
+
+ aProcess hasUiProcessFlag ifTrue: [
+ self uiProcess: aProcess.
+ aProcess clearUiProcessFlag.
+ Processor terminateActive].!
Item was added:
+ ----- Method: MorphicProject>>suspendProcessSafely: (in category 'scheduling & debugging') -----
+ suspendProcessSafely: processToDebug
+ "Overwritten to ensure that at least one UI process is running."
+
+ self spawnNewProcessIfThisIsUI: processToDebug.
+ processToDebug suspend.!
Item was added:
+ ----- Method: Process>>clearUiProcessFlag (in category '*Morphic-debugging support') -----
+ clearUiProcessFlag
+
+ self environmentRemoveKey: #uiProcessFlag ifAbsent: nil.!
Item was added:
+ ----- Method: Process>>hasUiProcessFlag (in category '*Morphic-debugging support') -----
+ hasUiProcessFlag
+
+ ^ self environmentAt: #uiProcessFlag ifAbsent: [false]!
Item was added:
+ ----- Method: Process>>setUiProcessFlag (in category '*Morphic-debugging support') -----
+ setUiProcessFlag
+
+ self environmentAt: #uiProcessFlag put: true.!
More information about the Squeak-dev
mailing list
|