[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