[squeak-dev] The Trunk: Morphic-mt.1816.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Dec 7 10:48:22 UTC 2021
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1816.mcz
==================== Summary ====================
Name: Morphic-mt.1816
Author: mt
Time: 7 December 2021, 11:48:09.738083 am
UUID: 523fa253-49bb-a447-9bb3-bbbc9e1c8e66
Ancestors: Morphic-ct.1815
Small workaround to make preference #openToolsAttachedToMouseCursor work more reliably during debugger invocation.
=============== Diff against Morphic-ct.1815 ===============
Item was changed:
----- Method: MorphicDebugger class>>openOn:context:label:contents:fullView: (in category 'opening') -----
openOn: processToDebug context: context label: title contents: contentsStringOrNil fullView: full
| debugger uiBlock |
debugger := self new
process: processToDebug context: context;
errorWasInUIProcess: (Project current spawnNewProcessIfThisIsUI: processToDebug).
uiBlock := [
full
ifTrue: [debugger openFullNoSuspendLabel: title]
ifFalse: [debugger openNotifierNoSuspendContents: contentsStringOrNil label: title].
"Try layouting the debugger tool at least once to avoid freeze."
debugger topView ifNotNil: [:window |
"There are way too many #fullBounds sends. Layout errors might already have happened."
window allMorphsDo: [:m | (m hasProperty: #errorOnLayout) ifTrue: [self error: 'Layout error']].
window world doLayout. "Not safely!!"].
"Try drawing the debugger tool at least once to avoid freeze."
debugger topView ifNotNil: [:window | window world displayWorld. "Not safely!!"].
].
"Schedule debugging in a deferred UI message if necessary. Note that only the ui process should execute ui code."
(Project current uiProcess isActiveProcess not or: [processToDebug isActiveProcess])
+ ifFalse: uiBlock
+ ifTrue: [ | event |
+ self flag: #discuss. "mt: We need to preserve the currentEvent for #openToolsAttachedToMouseCursor ..."
+ event := self currentEvent.
+ Project current addDeferredUIMessage: [event becomeActiveDuring: uiBlock]].
- ifTrue: [Project current addDeferredUIMessage: uiBlock]
- ifFalse: uiBlock.
processToDebug suspend.
"Get here only if active process is not the process-to-debug. So in tests, use a helper process if you want to access this return value."
^ debugger!
More information about the Squeak-dev
mailing list
|