[Etoys] [fix] PasteUpMorph shall not accept ScriptEditorMorph

Karl karl.ramberg at chello.se
Fri Dec 1 10:52:55 EST 2006


When you have a Playfield/PasteUpMorph open in the world you had to be 
careful where you placed the ScriptEditorMorphs otherwise they would 
embed them self into the Playfield and some annoying cropping would occur.
karl
-------------- next part --------------
'From OLPC2.0 of ''24 October 2006'' [latest update: #1134] on 1 December 2006 at 4:47:57 pm'!

!PasteUpMorph methodsFor: 'dropping/grabbing' stamp: 'kfr 12/1/2006 12:55'!
acceptDroppingMorph: dropped event: evt
	"The supplied morph, known to be acceptable to the receiver, is now to be assimilated; the precipitating event is supplied"

	| mm tfm aMorph |
	aMorph _ self morphToDropFrom: dropped.
	self isWorldMorph
		ifTrue:["Add the given morph to this world and start stepping it if it wants to be."
				self addMorphFront: aMorph.
				(aMorph fullBounds intersects: self viewBox) ifFalse:
					[Beeper beep.  aMorph position: self bounds center]]
		ifFalse:[(dropped isKindOf: ScriptEditorMorph)
			ifTrue:[self world acceptDroppingMorph: aMorph event: evt]
			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 | 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
		ifTrue:
			[aMorph isPartsDonor: true.
			aMorph stopSteppingSelfAndSubmorphs.
			aMorph suspendEventHandler]
		ifFalse:
			[self world startSteppingSubmorphsOf: aMorph].

	self presenter morph: aMorph droppedIntoPasteUpMorph: self.

	self showingListView ifTrue:
		[self sortSubmorphsBy: (self valueOfProperty: #sortOrder).
		self currentWorld abandonAllHalos]! !



More information about the Etoys mailing list