Chris Cunningham uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-cbc.1452.mcz==================== Summary ====================
Name: Morphic-cbc.1452
Author: cbc
Time: 13 June 2018, 7:45:19.342537 pm
UUID: 16e46d7e-75d2-9047-a872-6f069d65920f
Ancestors: Morphic-cbc.1451
Recategorized #referencePositionInWorld (and setter) to be with related methods.
Fixed #adjustAfter: to once again allow halo rotation of morphs to actually rotate around the rotationCenter (instead of center of the morph).
=============== Diff against Morphic-cbc.1451 ===============
Item was added:
+ ----- Method: Morph>>referencePositionInWorld (in category 'rotate scale and flex') -----
+ referencePositionInWorld
+
+ ^ self pointInWorld: self referencePosition
+ !
Item was added:
+ ----- Method: Morph>>referencePositionInWorld: (in category 'rotate scale and flex') -----
+ referencePositionInWorld: aPoint
+ | localPosition |
+ localPosition := owner
+ ifNil: [aPoint]
+ ifNotNil: [(owner transformFrom: self world) globalPointToLocal: aPoint].
+
+ self referencePosition: localPosition
+ !
Item was changed:
----- Method: TransformationMorph>>adjustAfter: (in category 'private') -----
adjustAfter: changeBlock
"Cause this morph to remain cetered where it was before, and
choose appropriate smoothing, after a change of scale or rotation."
| oldRefPos |
oldRefPos := self referencePosition.
changeBlock value.
self chooseSmoothing.
+ self penUpWhile: [self position: self position + (oldRefPos - self referencePosition)].
- self actorStateOrNil ifNotNil:[
- self penUpWhile: [self position: self position + (oldRefPos - self referencePosition)].
- ].
self layoutChanged.
owner ifNotNil: [owner invalidRect: bounds]
!