David T. Lewis uploaded a new version of Morphic to project The Trunk: http://source.squeak.org/trunk/Morphic-cmfcmf.1490.mcz
==================== Summary ====================
Name: Morphic-cmfcmf.1490 Author: cmfcmf Time: 30 June 2019, 12:04:13.370226 pm UUID: ab2320d7-f8f4-df46-a786-ec28230e912c Ancestors: Morphic-pre.1489
When wrapping a Morph into a flex shell, first add the flex shell to the Morph's owner (and thus to the Morph's world) before making the Morph a submorph of the flex shell. This avoids unnecessarily sending outOfWorld: to the Morph when adding it to the new flex shell (which doesn't have a world after creation) and intoWorld: when adding the flex shell to the Morph's owner right thereafter.
=============== Diff against Morphic-pre.1489 ===============
Item was changed: ----- Method: Morph>>addFlexShell (in category 'rotate scale and flex') ----- addFlexShell "Wrap a rotating and scaling shell around this morph."
| oldHalo myWorld flexMorph anIndex | - oldHalo:= self halo. myWorld := self world. self owner ifNil: [flexMorph := self newTransformationMorph asFlexOf: self] ifNotNil: [:myOwner | anIndex := myOwner submorphIndexOf: self. + "Avoid triggering outOfWorld: on self by first adding flexMorph to myOwner and only then making myself a submorph of flexMorph via asFlexOf:" + flexMorph := self newTransformationMorph. - flexMorph := self newTransformationMorph asFlexOf: self. myOwner addMorph: flexMorph asElementNumber: anIndex. + flexMorph asFlexOf: self. myWorld ifNotNil: [myWorld startSteppingSubmorphsOf: flexMorph]]. self transferStateToRenderer: flexMorph. oldHalo ifNotNil: [oldHalo setTarget: flexMorph].
^ flexMorph!
packages@lists.squeakfoundation.org