Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.879.mcz==================== Summary ====================
Name: Morphic-mt.879
Author: mt
Time: 15 April 2015, 5:18:23.809 pm
UUID: 5fa32ced-797d-794e-853d-5da518a5d712
Ancestors: Morphic-mt.878
Flagged some strange code in Morph class.
=============== Diff against Morphic-mt.878 ===============
Item was changed:
----- Method: Morph>>setConstrainedPosition:hangOut: (in category 'geometry') -----
setConstrainedPosition: aPoint hangOut: partiallyOutside
"Change the position of this morph and and all of its submorphs to aPoint, but don't let me go outside my owner's bounds. Let me go within two pixels of completely outside if partiallyOutside is true."
| trialRect delta boundingMorph bRect |
+ self flag: #smelly. "mt: The consideration of partiallyOutside is strange... The explicit #laoyutChanged, too."
owner ifNil:[^self].
trialRect := aPoint extent: self bounds extent.
boundingMorph := self topRendererOrSelf owner.
delta := boundingMorph
ifNil: [0@0]
ifNotNil: [
bRect := partiallyOutside
ifTrue: [boundingMorph bounds insetBy:
self extent negated + boundingMorph borderWidth + (2@2)]
ifFalse: [boundingMorph bounds].
trialRect amountToTranslateWithin: bRect].
self position: aPoint + delta.
self layoutChanged "So that, eg, surrounding text will readjust"
!