The Inbox: Morphic-pre.1330.mcz

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

The Inbox: Morphic-pre.1330.mcz

Patrick Rein uploaded a new version of Morphic to project The Inbox:

==================== Summary ====================

Name: Morphic-pre.1330
Author: pre
Time: 15 March 2017, 4:25:43.265757 pm
UUID: b45d89f0-eef3-f54c-abb7-d9636b0a42d7
Ancestors: Morphic-pre.1329

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.
  self isWorldMorph
  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]]]].
  self isPartsBin
  [aMorph isPartsDonor: true.
  aMorph stopSteppingSelfAndSubmorphs.
  aMorph suspendEventHandler]
  [self world startSteppingSubmorphsOf: aMorph].
  " self presenter morph: aMorph droppedIntoPasteUpMorph: self."
  self griddingOn ifTrue: [aMorph position: (self gridPoint: aMorph position)].
  self showingListView ifTrue:
  [self sortSubmorphsBy: (self valueOfProperty: #sortOrder).
  self currentWorld abandonAllHalos].
  self bringTopmostsToFront.