Time: 15 March 2017, 4:25:43.265757 pm
Improved version of dropping behavior of the world to open the morph for a dropped object where it was dropped which also accounts for not moving around morphs which are already in the world.
=============== Diff against Morphic-pre.1329 ===============
Item was changed:
----- Method: PasteUpMorph>>acceptDroppingMorph:event: (in category 'dropping/grabbing') -----
acceptDroppingMorph: dropped event: evt
"The supplied morph, known to be acceptable to the receiver, is now to be assimilated; the precipitating event is supplied"
| aMorph |
aMorph := self morphToDropFrom: dropped.
ifTrue:["Add the given morph to this world and start stepping it if it wants to be."
+ aMorph isInWorld not ifTrue: [aMorph position: evt position].
- aMorph position: evt position.
self addMorphFront: aMorph.
(aMorph fullBounds intersects: self viewBox) ifFalse:
[Beeper beep. aMorph position: self bounds center]]
ifFalse:[super acceptDroppingMorph: aMorph event: evt].
aMorph submorphsDo: [:m | (m isKindOf: HaloMorph) ifTrue: [m delete]].
aMorph allMorphsDo: "Establish any penDown morphs in new world"
[:m | | tfm mm |
m player ifNotNil:
[m player getPenDown ifTrue:
[((mm := m player costume) notNil and: [(tfm := mm owner transformFrom: self) notNil])
ifTrue: [self noteNewLocation: (tfm localPointToGlobal: mm referencePosition)
forPlayer: m player]]]].