[squeak-dev] The Trunk: Morphic-mt.1289.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Aug 17 16:24:11 UTC 2016


Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1289.mcz

==================== Summary ====================

Name: Morphic-mt.1289
Author: mt
Time: 17 August 2016, 6:23:34.536397 pm
UUID: 495102e8-04e6-bb40-acb9-c15a0703485a
Ancestors: Morphic-mt.1288

Fixes a regression regarding the global ActiveWorld. Sorry for that. (Images might have to switch projects back and forth to get into a consistent state again.)

=============== Diff against Morphic-mt.1288 ===============

Item was changed:
  ----- Method: Debugger class>>morphicOpenOn:context:label:contents:fullView: (in category '*Morphic-opening') -----
  morphicOpenOn: process 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."
  
  	| errorWasInUIProcess debugger |
  	ErrorRecursion ifTrue: [
  		"self assert: process == Project current uiProcess -- DOCUMENTATION ONLY"
  		ErrorRecursion := false.
  		^ Project current handleFatalDrawingError: title].
  
  	[ErrorRecursion not & Preferences logDebuggerStackToFile
  		ifTrue: [Smalltalk logSqueakError: title inContext: context]] on: Error do: [:ex | ex return: nil].
  	
  	ErrorRecursion := true.
  
  	errorWasInUIProcess := Project current spawnNewProcessIfThisIsUI: process.
  
  	"Schedule debugging in deferred UI message because
  		1) If process is the current UI process, it is already broken.
  		2) If process is some other process, it must not execute UI code"
  	Project current addDeferredUIMessage: [ 		
  		debugger := self new process: process controller: nil context: context.
  		full
  			ifTrue: [debugger openFullNoSuspendLabel: title]
  			ifFalse: [debugger openNotifierContents: contentsStringOrNil label: title].
  		debugger errorWasInUIProcess: errorWasInUIProcess.
  		
  		"Try drawing the debugger tool at least once to avoid freeze."
+ 		Project current world displayWorldSafely.
- 		ActiveWorld displayWorldSafely.
  		
  		ErrorRecursion := false.
  	].
  	process suspend.
  !

Item was changed:
  ----- Method: HandMorph>>becomeActiveDuring: (in category 'initialization') -----
  becomeActiveDuring: aBlock
  	"Make the receiver the ActiveHand during the evaluation of aBlock."
  
  	| priorHand |
  	priorHand := ActiveHand.
  	ActiveHand := self.
  	^ aBlock ensure: [
+ 		"check to support project switching."
+ 		ActiveHand == self ifTrue: [ActiveHand := priorHand]].!
- 		"nil check to support project switching."
- 		ActiveHand ifNotNil: [ActiveHand := priorHand]].!

Item was changed:
  ----- Method: MorphicEvent>>becomeActiveDuring: (in category 'initialize') -----
  becomeActiveDuring: aBlock
  	"Make the receiver the ActiveEvent during the evaluation of aBlock."
  
  	| priorEvent |
  	priorEvent := ActiveEvent.
  	ActiveEvent := self.
  	^ aBlock ensure: [
+ 		"check to support project switching."
+ 		ActiveEvent == self ifTrue: [ActiveEvent := priorEvent]].!
- 		"nil check to support project switching."
- 		ActiveEvent ifNotNil: [ActiveEvent := priorEvent]].!

Item was changed:
  ----- Method: PasteUpMorph>>becomeActiveDuring: (in category 'initialization') -----
  becomeActiveDuring: aBlock
  	"Make the receiver the ActiveWorld during the evaluation of aBlock."
  
  	| priorWorld |
  	priorWorld := ActiveWorld.
  	ActiveWorld := self.
  	^ aBlock ensure: [
+ 		"check to support project switching."
+ 		ActiveWorld == self ifTrue: [ActiveWorld := priorWorld]].!
- 		"nil check to support project switching."
- 		ActiveWorld ifNotNil: [ActiveWorld := priorWorld]].!



More information about the Squeak-dev mailing list