'From Moshi of 3 March 2007 [latest update: #250] on 18 July 2007 at 11:33:38 pm'! "Change Set: barePlayerlessPhrase-sw Date: 18 July 2007 Author: Scott Wallace Treat bare playerless phrases on the desktop like all others. Cross-published from moshi update 0251barePlayerlessPhrase-sw. "! !PhraseTileMorph methodsFor: 'dropping/grabbing' stamp: 'sw 7/18/2007 23:27'! morphToDropInPasteUp: aPasteUp "Answer the morph to drop in aPasteUp, given that the receiver is the putative droppee" | actualObject itsSelector aScriptor pos aWatcher op | ((actualObject _ self actualObject) isNil or: [actualObject costume isInWorld not]) ifTrue: [^ ScriptingTileHolder around: self]. self isCommand ifFalse: "Can't expand to a scriptor, but maybe launch a watcher..." [^ (Preferences dropProducesWatcher and: [(#(unknown command) includes: self resultType) not] and: [(op _ self operatorTile operatorOrExpression) notNil] and: [op numArgs = 0] and: [(Vocabulary gettersForbiddenFromWatchers includes: op) not]) ifTrue: [aWatcher _ WatcherWrapper new fancyForPlayer: self associatedPlayer getter: op. aWatcher position: self position] ifFalse: [ScriptingTileHolder around: self]]. self justGrabbedFromViewer ifFalse: [^ ScriptingTileHolder around: self]. actualObject assureUniClass. itsSelector _ self userScriptSelector. pos _ self position. aScriptor _ itsSelector isEmptyOrNil ifFalse: [actualObject scriptEditorFor: itsSelector] ifTrue: ["It's a system-defined selector; construct an anonymous scriptor around it" actualObject newScriptorAround: self]. aScriptor ifNil:[^ ScriptingTileHolder around: self]. (self hasOwner: aScriptor) ifTrue:[ aScriptor fullBounds. "force layout" aScriptor position: pos - self position. ] ifFalse:[ aScriptor position: self position. ]. (aScriptor valueOfProperty: #needsLayoutFixed) ifNotNil: [ aScriptor removeProperty: #needsLayoutFixed. aScriptor fixLayout ]. ^ aScriptor! !