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

commits at source.squeak.org commits at source.squeak.org
Mon Mar 15 10:23:19 UTC 2021


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

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

Name: Morphic-mt.1741
Author: mt
Time: 15 March 2021, 11:23:13.100586 am
UUID: 2e5a5c44-9fab-6d41-ba67-e94d99da9a07
Ancestors: Morphic-mt.1740

Complements Kernel-mt.1381

Fixes for debugger invocation during code simulation. See  http://forum.world.st/Please-try-out-Fixes-for-debugger-invocation-during-code-simulation-td5127684.html

=============== Diff against Morphic-mt.1740 ===============

Item was added:
+ ----- Method: DialogWindow>>browseInvocation (in category 'running') -----
+ browseInvocation
+ 	"Browse the first meaningful invocation method of the receiver."
+ 
+ 	self exclusive: false.
+ 	
+ 	(thisContext findContextSuchThat: self invocationContextPredicate) method browse.!

Item was changed:
  ----- Method: DialogWindow>>debugInvocation (in category 'running') -----
  debugInvocation
+ 	"Bring up a debugger on the active process, displaying the invocation of the receiver. Strip off irrelevant stack frames that are an implementation detail of the invocation."
  
+ 	self exclusive: false.
+ 	
+ 	^ Processor
+ 		debugContextThat: self invocationContextPredicate
+ 		title: 'Dialog invocation' translated
+ 		full: true!
- 	Processor activeProcess
- 		debug: self findInvocationContext
- 		title: 'Dialog invocation'!

Item was removed:
- ----- Method: DialogWindow>>exploreInvocation (in category 'running') -----
- exploreInvocation
- 
- 	self exclusive: false.
- 	(self findInvocationContext stack collect: #method)
- 		explore!

Item was removed:
- ----- Method: DialogWindow>>findInvocationContext (in category 'running') -----
- findInvocationContext
- 
- 	| context |
- 	context := thisContext.
- 	[context method selector = #getUserResponse and: [context isMethodContext]]
- 		whileFalse: [context := context sender].
- 	^ context!

Item was added:
+ ----- Method: DialogWindow>>invocationContextPredicate (in category 'private') -----
+ invocationContextPredicate
+ 
+ 	| searchPhase hiddenCategories |
+ 	self flag: #todo. "ct: Currently, this might cut away a few contexts too much when a dialog window is opened from Morphic code (e.g., SystemWindow>>relabel) directly. With the introduction of UserNotifications, however, this problem will be solved because there will be always an external context between the client and the receiver. See http://forum.world.st/Discussion-Warning-vs-Halt-or-quot-Why-is-a-warning-a-notification-quot-td5106457.html#a5106605 and others."
+ 	
+ 	searchPhase := true.
+ 	hiddenCategories := #('Morphic-Windows' 'ToolBuilder-Kernel' 'ToolBuilder-Morphic' 'ToolBuilder-Morphic-Tools').
+ 	^ [:ctx |
+ 		searchPhase
+ 			ifTrue: [ "search invocation context"
+ 				(ctx isMethodContext and: [ctx method selector = #getUserResponse])
+ 					ifTrue: [searchPhase := false].
+ 				false]
+ 			ifFalse: [ "filter out irrelevant contexts"
+ 				 (hiddenCategories includes: ctx receiver class category) not]]!

Item was changed:
  ----- Method: DialogWindow>>offerDialogMenu (in category 'running') -----
  offerDialogMenu
  
  	| menu |
  	menu := MenuMorph new defaultTarget: self.
  	menu
  		add: (exclusive == true ifTrue: ['<yes>'] ifFalse: ['<no>']), 'be modally exclusive' translated
  			action: #toggleExclusive;
  		addLine;
+ 		add: 'browse invocation' translated
+ 			action: #browseInvocation;
+ 		add: 'debug invocation' translated
- 		add: 'explore dialog invocation' translated
- 			action: #exploreInvocation;
- 		add: 'debug dialog invocation' translated
  			action: #debugInvocation.
  		
  	menu popUpEvent: self currentEvent in: self world.
  	
  	[menu isInWorld] whileTrue: [self world doOneSubCycle].
  	self exclusive ifTrue: [self activeHand newMouseFocus: self].!



More information about the Squeak-dev mailing list