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

commits at source.squeak.org commits at source.squeak.org
Fri Aug 14 11:35:33 UTC 2020


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

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

Name: Morphic-mt.1674
Author: mt
Time: 14 August 2020, 1:35:28.120535 pm
UUID: 9b6b3a33-4993-437b-b180-606d9be16223
Ancestors: Morphic-mt.1673

Fixes test12CustomEventDispatcher as reported:

- https://smalltalk.tech.blog/2020/08/10/smalltalks-successor/
- http://forum.world.st/A-Sad-Day-tp5120519.html

This also increases the robustess when loading code that overrides #processEvent: or #processEvent:using: without returning an event object but self.

=============== Diff against Morphic-mt.1673 ===============

Item was changed:
  ----- Method: MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf: (in category 'support') -----
  dispatchEvent: anEvent toSubmorphsOf: aMorph
  	"Dispatch the given event to the submorphs of the given morph. For coordinate transformations, work only with copies. Either return the given event or a copy of any filtered event to employ immutability to some extent. --- PRIVATE!!"
  
  	| localEvent filteredEvent |	
  	aMorph submorphsDo: [:child |
  		localEvent := anEvent transformedBy: (child transformedFrom: aMorph).
+ 		filteredEvent := child processEvent: localEvent.
+ 		filteredEvent == #rejected ifFalse: [ "some event or #rejected symbol or any other object"
+ 			filteredEvent isMorphicEvent ifFalse: [filteredEvent := localEvent].		
- 		filteredEvent := child
- 			processEvent: localEvent
- 			using: self. "use same dispatcher"
- 		filteredEvent == #rejected ifFalse: [ "some event or #rejected symbol"
  			self flag: #overlappingChildren. "mt: We cannot give two overlapping siblings the chance to handle the event!!"	
  			^ self nextFromOriginal: anEvent local: localEvent filtered: filteredEvent]].
  
  	^ #rejected!



More information about the Squeak-dev mailing list