"Change Set: MorphicTransformFix-nk Date: 9 March 2001 Author: Ned Konz This fixes the problem of incorrect transforms when a TransformMorph that has a transform that is a pure offset is the owner of a TransformMorph whose transform is a pure offset. Here's some workspace code to test with (sorry about the single quotes): m _ Morph new openInWorld; position: 100@100. m extent.' 50@40' t _ m transformFrom: m world. (t localPointToGlobal: m center).' 125@120' f _ m addFlexShell. t _ m transformFrom: m world. (t localPointToGlobal: m center).'should be 125@120' ff _ f addFlexShell. t _ m transformFrom: m world. (t localPointToGlobal: m center).'should be 125@120' "! !MorphicTransform methodsFor: 'composing' stamp: 'nk 3/9/2001 13:55'! composedWithLocal: aTransform aTransform isIdentity ifTrue:[^self]. self isIdentity ifTrue:[^aTransform]. aTransform isMorphicTransform ifFalse:[^super composedWithLocal: aTransform]. self isPureTranslation ifTrue:[ ^aTransform withOffset: aTransform offset + self offset]. aTransform isPureTranslation ifTrue:[ ^self withOffset: (self localPointToGlobal: aTransform offset negated) negated]. ^super composedWithLocal: aTransform.! !