Karl Ramberg uploaded a new version of Etoys to project Etoys: http://source.squeak.org/etoys/Etoys-kfr.58.mcz
==================== Summary ====================
Name: Etoys-kfr.58 Author: kfr Time: 17 May 2011, 5:54:47 pm UUID: 5ea13608-698c-8947-8414-ff08c4a1500f Ancestors: Etoys-bf.57
If you delete an object its scripts disappear, but its watcher's remain http://tracker.squeakland.org/browse/SQ-885
=============== Diff against Etoys-bf.57 ===============
Item was changed: ----- Method: Player>>noteDeletionOf:fromWorld: (in category 'customevents-misc') ----- noteDeletionOf: aMorph fromWorld: aWorld "aMorph, while pointing to me as its costumee, has been deleted" "This may be too aggressive because deletion of a morph may not really mean deletion of its associated player -- in light of hoped-for multiple viewing"
+ | viewers scriptors viewerFlaps watchers | + viewers := OrderedCollection new. + viewerFlaps := OrderedCollection new. + scriptors := OrderedCollection new. + watchers := OrderedCollection new. - | viewers scriptors viewerFlaps | - viewers _ OrderedCollection new. - viewerFlaps _ OrderedCollection new. - scriptors _ OrderedCollection new. aWorld allMorphs do: [:m | m isAViewer ifTrue: [viewers add: m]. ((m isKindOf: ViewerFlapTab) and: [m scriptedPlayer == self]) ifTrue: [viewerFlaps add: m]. ((m isKindOf: ScriptEditorMorph) and: [m myMorph == aMorph]) + ifTrue: [scriptors add: m]. + ((m isKindOf: WatcherWrapper) and: [m associatedPlayer == self]) + ifTrue: [watchers add: m] + ]. - ifTrue: [scriptors add: m]].
aMorph removeAllEventTriggersFor: self. aWorld removeAllEventTriggersFor: self. viewers do: [:v | v noteDeletionOf: aMorph]. viewerFlaps do: [:v | v dismissViaHalo]. + scriptors do: [:s | s privateDelete]. + watchers do: [:s | s privateDelete]! - scriptors do: [:s | s privateDelete] !
etoys-dev@lists.squeakfoundation.org