<div dir="ltr"><div>Also if you try to make a etoy script to a Holder (PasteUpMorph) you get a DNU</div><div><br></div><div>11 August 2022 6:41:38.489087 pm<br><br>VM: Win32 - Smalltalk<br>Image: Squeak6.1alpha [latest update: #22144]<br><br>SecurityManager state:<br>Restricted: false<br>FileAccess: true<br>SocketAccess: true<br>Working Dir C:\Users\Karl\Downloads\Squeak6.0beta-22041-64bit-202206021410-Windows-x64<br>Trusted Dir C:\Users\Karl\Downloads\Squeak6.0beta-22041-64bit-202206021410-Windows-x64\Karl<br>Untrusted Dir C:\Users\Karl\Documents\My Squeak<br><br>UndefinedObject(Object)>>doesNotUnderstand: #hands<br> Receiver: nil<br> Arguments and temporary variables: <br> aMessage: hands<br> exception: MessageNotUnderstood: UndefinedObject>>hands<br> resumeValue: nil<br> Receiver's instance variables: <br>nil<br><br>PasteUpMorph>>hands<br> Receiver: a PasteUpMorph<Holder>(2668797)<br> Arguments and temporary variables: <br><br> Receiver's instance variables: <br> bounds: 546@473 corner: 706@583<br> owner: a PasteUpMorph(2434915) [world]<br> submorphs: #()<br> fullBounds: 546@473 corner: 706@583<br> color: (Color r: 1 g: 0.907 b: 0.767)<br> extension: a MorphExtension (3889196) [sticky] [externalName = Holder ] [play...etc...<br> borderWidth: 1<br> borderColor: (Color r: 1 g: 0.612 b: 0.03)<br> presenter: nil<br> model: a MorphicModel1(2821750)<br> cursor: 1<br> padding: 3<br> turtleTrailsForm: nil<br> turtlePen: nil<br> lastTurtlePositions: nil<br> isPartsBin: nil<br> indicateCursor: true<br> wantsMouseOverHalos: false<br> worldState: nil<br><br>PasteUpMorph>>primaryHand<br> Receiver: a PasteUpMorph<Holder>(2668797)<br> Arguments and temporary variables: <br><br> Receiver's instance variables: <br> bounds: 546@473 corner: 706@583<br> owner: a PasteUpMorph(2434915) [world]<br> submorphs: #()<br> fullBounds: 546@473 corner: 706@583<br> color: (Color r: 1 g: 0.907 b: 0.767)<br> extension: a MorphExtension (3889196) [sticky] [externalName = Holder ] [play...etc...<br> borderWidth: 1<br> borderColor: (Color r: 1 g: 0.612 b: 0.03)<br> presenter: nil<br> model: a MorphicModel1(2821750)<br> cursor: 1<br> padding: 3<br> turtleTrailsForm: nil<br> turtlePen: nil<br> lastTurtlePositions: nil<br> isPartsBin: nil<br> indicateCursor: true<br> wantsMouseOverHalos: false<br> worldState: nil<br><br>UnscriptedPlayer(Player)>>getIsUnderMouse<br> Receiver: an UnscriptedPlayer (1695190) named Holder<br> Arguments and temporary variables: <br><br> Receiver's instance variables: <br> dependents: nil<br> costume: a PasteUpMorph<Holder>(2668797)<br> costumes: nil<br> patch: nil<br> index: nil<br><br>BooleanType(DataType)>>updatingTileForTarget:partName:getter:setter:<br> Receiver: a BooleanType named "Boolean"<br> Arguments and temporary variables: <br> aTarget: an UnscriptedPlayer (1695190) named Holder<br> partName: #getIsUnderMouse<br> getter: #getIsUnderMouse<br> setter: nil<br> aTile: a StringReadoutTile(168476) - #literal op= ''<br> displayer: an UpdatingStringMorph<readout string>(434587)nil<br> actualSetter: nil<br> Receiver's instance variables: <br> authoringStamp: ' 5/6/2022 '<br> properties: nil<br> elementSymbol: nil<br> naturalLanguageTranslations: nil<br> vocabularyName: #Boolean<br> categories: an OrderedCollection()<br> methodInterfaces: an IdentityDictionary()<br> object: nil<br> limitClass: nil<br> translationTable: nil<br><br>CategoryViewer>>readoutFor:type:readOnly:getSelector:putSelector:<br> Receiver: a CategoryViewer(1831999)<br> Arguments and temporary variables: <br> partName: #getIsUnderMouse<br> partType: #Boolean<br> readOnly: true<br> getSelector: #getIsUnderMouse<br> putSelector: nil<br> readout: nil<br> delta: nil<br> Receiver's instance variables: <br> bounds: 0@0 corner: 50@40<br> owner: nil<br> submorphs: {an AlignmentMorph(4146482)}<br> fullBounds: nil<br> color: (Color r: 0.8 g: 1 b: 0.8)<br> extension: a MorphExtension (1575669) [other: (layoutProperties -> (TableLayou...etc...<br> borderWidth: 0<br> borderColor: Color black<br> scriptedPlayer: an UnscriptedPlayer (1695190) named Holder<br> namePane: a BorderedMorph(3639285)<br> chosenCategorySymbol: #tests<br><br>CategoryViewer>>phraseForVariableFrom:<br> Receiver: a CategoryViewer(1831999)<br> Arguments and temporary variables: <br> aMethodInterface: a MethodInterface - wording: 'isUnderMouse' selector: #getIsUnderMouse...etc...<br> anArrow: nil<br> slotName: #getIsUnderMouse<br> getterButton: a TileMorph(4135722) - #operator op= #getIsUnderMouse op= ''<br> cover: nil<br> inner: nil<br> aRow: a ViewerLine(1085320)<br> doc: 'whether the object is under the current mouse position'<br> setter: nil<br> tryer: nil<br> universal: false<br> hotTileForSelf: a TileMorph(4153103) - #objRef op= ''<br> spacer: a Morph(3800811)<br> buttonFont: a StrikeFont(Bitmap DejaVu Sans 7.5pt 96ppi 10px Normal)<br> varName: #isUnderMouse<br> Receiver's instance variables: <br> bounds: 0@0 corner: 50@40<br> owner: nil<br> submorphs: {an AlignmentMorph(4146482)}<br> fullBounds: nil<br> color: (Color r: 0.8 g: 1 b: 0.8)<br> extension: a MorphExtension (1575669) [other: (layoutProperties -> (TableLayou...etc...<br> borderWidth: 0<br> borderColor: Color black<br> scriptedPlayer: an UnscriptedPlayer (1695190) named Holder<br> namePane: a BorderedMorph(3639285)<br> chosenCategorySymbol: #tests<br><br>[] in UnscriptedPlayer(Object)>>tilePhrasesForMethodInterfaces:inViewer:<br> Receiver: an UnscriptedPlayer (1695190) named Holder<br> Arguments and temporary variables: <br> methodInterfaceList: {a MethodInterface - wording: 'color sees' selector: #color:sees:...etc...<br> aViewer: a CategoryViewer(1831999)<br> toSuppress: #()<br> interfaces: {a MethodInterface - wording: 'color sees' selector: #color:sees: ...etc...<br> aMethodInterface: a MethodInterface - wording: 'isUnderMouse' selector: #getIsUnderMouse...etc...<br> resultType: #Boolean<br> Receiver's instance variables: <br> dependents: nil<br> costume: a PasteUpMorph<Holder>(2668797)<br> costumes: nil<br> patch: nil<br> index: nil<br><br>Array(SequenceableCollection)>>collect:<br> Receiver: {a MethodInterface - wording: 'color sees' selector: #color:sees: result type = Boolean ....etc...<br> Arguments and temporary variables: <br> aBlock: [closure] in UnscriptedPlayer(Object)>>tilePhrasesForMethodInterfaces:inViewer:...etc...<br> newCollection: {a ViewerLine(3256609) . a ViewerLine(2368222) . nil . nil . nil...etc...<br> index: 3<br> indexLimiT: 7<br> Receiver's instance variables: <br>{a MethodInterface - wording: 'color sees' selector: #color:sees: result type = Boolean ....etc...<br><br>UnscriptedPlayer(Object)>>tilePhrasesForMethodInterfaces:inViewer:<br> Receiver: an UnscriptedPlayer (1695190) named Holder<br> Arguments and temporary variables: <br> methodInterfaceList: {a MethodInterface - wording: 'color sees' selector: #color:sees:...etc...<br> aViewer: a CategoryViewer(1831999)<br> toSuppress: #()<br> interfaces: {a MethodInterface - wording: 'color sees' selector: #color:sees: ...etc...<br> Receiver's instance variables: <br> dependents: nil<br> costume: a PasteUpMorph<Holder>(2668797)<br> costumes: nil<br> patch: nil<br> index: nil<br><br>UnscriptedPlayer(Object)>>tilePhrasesForCategory:inViewer:<br> Receiver: an UnscriptedPlayer (1695190) named Holder<br> Arguments and temporary variables: <br> aCategorySymbol: #tests<br> aViewer: a CategoryViewer(1831999)<br> interfaces: {a MethodInterface - wording: 'color sees' selector: #color:sees: ...etc...<br> Receiver's instance variables: <br> dependents: nil<br> costume: a PasteUpMorph<Holder>(2668797)<br> costumes: nil<br> patch: nil<br> index: nil<br><br>CategoryViewer>>categoryWording:<br> Receiver: a CategoryViewer(1831999)<br> Arguments and temporary variables: <br> aCategoryWording: 'tests'<br> Receiver's instance variables: <br> bounds: 0@0 corner: 50@40<br> owner: nil<br> submorphs: {an AlignmentMorph(4146482)}<br> fullBounds: nil<br> color: (Color r: 0.8 g: 1 b: 0.8)<br> extension: a MorphExtension (1575669) [other: (layoutProperties -> (TableLayou...etc...<br> borderWidth: 0<br> borderColor: Color black<br> scriptedPlayer: an UnscriptedPlayer (1695190) named Holder<br> namePane: a BorderedMorph(3639285)<br> chosenCategorySymbol: #tests<br><br>CategoryViewer>>chosenCategorySymbol:<br> Receiver: a CategoryViewer(1831999)<br> Arguments and temporary variables: <br> aCategorySymbol: #tests<br> aCategory: an ElementCategory named tests<br> wording: 'tests'<br> Receiver's instance variables: <br> bounds: 0@0 corner: 50@40<br> owner: nil<br> submorphs: {an AlignmentMorph(4146482)}<br> fullBounds: nil<br> color: (Color r: 0.8 g: 1 b: 0.8)<br> extension: a MorphExtension (1575669) [other: (layoutProperties -> (TableLayou...etc...<br> borderWidth: 0<br> borderColor: Color black<br> scriptedPlayer: an UnscriptedPlayer (1695190) named Holder<br> namePane: a BorderedMorph(3639285)<br> chosenCategorySymbol: #tests<br><br>CategoryViewer>>chooseCategoryWhoseTranslatedWordingIs:<br> Receiver: a CategoryViewer(1831999)<br> Arguments and temporary variables: <br> aWording: #tests<br> Receiver's instance variables: <br> bounds: 0@0 corner: 50@40<br> owner: nil<br> submorphs: {an AlignmentMorph(4146482)}<br> fullBounds: nil<br> color: (Color r: 0.8 g: 1 b: 0.8)<br> extension: a MorphExtension (1575669) [other: (layoutProperties -> (TableLayou...etc...<br> borderWidth: 0<br> borderColor: Color black<br> scriptedPlayer: an UnscriptedPlayer (1695190) named Holder<br> namePane: a BorderedMorph(3639285)<br> chosenCategorySymbol: #tests<br><br>CategoryViewer>>initializeFor:categoryChoice:<br> Receiver: a CategoryViewer(1831999)<br> Arguments and temporary variables: <br> aPlayer: an UnscriptedPlayer (1695190) named Holder<br> aChoice: #tests<br> Receiver's instance variables: <br> bounds: 0@0 corner: 50@40<br> owner: nil<br> submorphs: {an AlignmentMorph(4146482)}<br> fullBounds: nil<br> color: (Color r: 0.8 g: 1 b: 0.8)<br> extension: a MorphExtension (1575669) [other: (layoutProperties -> (TableLayou...etc...<br> borderWidth: 0<br> borderColor: Color black<br> scriptedPlayer: an UnscriptedPlayer (1695190) named Holder<br> namePane: a BorderedMorph(3639285)<br> chosenCategorySymbol: #tests<br><br>StandardViewer>>categoryViewerFor:<br> Receiver: a StandardViewer(2968052)<br> Arguments and temporary variables: <br> categoryInfo: #tests<br> aViewer: a CategoryViewer(1831999)<br> Receiver's instance variables: <br> bounds: 0@0 corner: 550@40<br> owner: nil<br> submorphs: {an AlignmentMorph(2995911) . a SearchingViewer(3862515) . a CategoryViewer...etc...<br> fullBounds: nil<br> color: (Color r: 0.572 g: 0.883 b: 0.572)<br> extension: a MorphExtension (2060252) [other: (limitClass -> ProtoObject) (lay...etc...<br> borderWidth: 1<br> borderColor: Color gray<br> scriptedPlayer: an UnscriptedPlayer (1695190) named Holder<br> firstPanel: nil<br><br>[] in StandardViewer>>addCategoryViewerFor:atEnd:<br> Receiver: a StandardViewer(2968052)<br> Arguments and temporary variables: <br> categoryInfo: #tests<br> atEnd: true<br> aViewer: nil<br> Receiver's instance variables: <br> bounds: 0@0 corner: 550@40<br> owner: nil<br> submorphs: {an AlignmentMorph(2995911) . a SearchingViewer(3862515) . a CategoryViewer...etc...<br> fullBounds: nil<br> color: (Color r: 0.572 g: 0.883 b: 0.572)<br> extension: a MorphExtension (2060252) [other: (limitClass -> ProtoObject) (lay...etc...<br> borderWidth: 1<br> borderColor: Color gray<br> scriptedPlayer: an UnscriptedPlayer (1695190) named Holder<br> firstPanel: nil<br><br>FullBlockClosure(BlockClosure)>>ensure:<br> Receiver: [closure] in StandardViewer>>addCategoryViewerFor:atEnd:<br> Arguments and temporary variables: <br> aBlock: [closure] in CursorWithMask(Cursor)>>showWhile:<br> complete: nil<br> returnValue: nil<br> Receiver's instance variables: <br> outerContext: StandardViewer>>addCategoryViewerFor:atEnd:<br> startpcOrMethod: ([] in StandardViewer>>#addCategoryViewerFor:atEnd: "a CompiledBlock...etc...<br> numArgs: 0<br> receiver: a StandardViewer(2968052)<br><br>CursorWithMask(Cursor)>>showWhile:<br> Receiver: ((CursorWithMask<br> extent: 16@16<br> depth: 1<br> fromArray: #(<br> 2r0<br> 2r11111111111111000000000...etc...<br> Arguments and temporary variables: <br> aBlock: [closure] in StandardViewer>>addCategoryViewerFor:atEnd:<br> oldcursor: ((CursorWithMask<br> extent: 16@16<br> depth: 1<br> fromArray: #(<br> 2r0<br> 2r1...etc...<br> Receiver's instance variables: <br> bits: a Bitmap of length 16<br> width: 16<br> height: 16<br> depth: 1<br> offset: -1@ -1<br> maskForm: Form(16x16x1)<br><br><br>--- The full stack ---<br>UndefinedObject(Object)>>doesNotUnderstand: #hands<br>PasteUpMorph>>hands<br>PasteUpMorph>>primaryHand<br>UnscriptedPlayer(Player)>>getIsUnderMouse<br>BooleanType(DataType)>>updatingTileForTarget:partName:getter:setter:<br>CategoryViewer>>readoutFor:type:readOnly:getSelector:putSelector:<br>CategoryViewer>>phraseForVariableFrom:<br>[] in UnscriptedPlayer(Object)>>tilePhrasesForMethodInterfaces:inViewer:<br>Array(SequenceableCollection)>>collect:<br>UnscriptedPlayer(Object)>>tilePhrasesForMethodInterfaces:inViewer:<br>UnscriptedPlayer(Object)>>tilePhrasesForCategory:inViewer:<br>CategoryViewer>>categoryWording:<br>CategoryViewer>>chosenCategorySymbol:<br>CategoryViewer>>chooseCategoryWhoseTranslatedWordingIs:<br>CategoryViewer>>initializeFor:categoryChoice:<br>StandardViewer>>categoryViewerFor:<br>[] in StandardViewer>>addCategoryViewerFor:atEnd:<br>FullBlockClosure(BlockClosure)>>ensure:<br>CursorWithMask(Cursor)>>showWhile:<br> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br>StandardViewer>>addCategoryViewerFor:atEnd:<br>StandardViewer>>addCategoryViewerFor:<br>StandardViewer>>addCategoryViewer<br>StandardViewer>>initializeFor:barHeight:includeDismissButton:showCategories:<br>StandardViewer>>initializeFor:barHeight:includeDismissButton:<br>StandardViewer>>initializeFor:barHeight:<br>EtoysPresenter>>viewMorph:<br>PasteUpMorph(Morph)>>openViewerForArgument<br>HaloMorph>>openViewerForTarget:with:<br>EventHandler>>send:to:withEvent:fromMorph:<br>EventHandler>>mouseDown:fromMorph:<br>EllipseMorph(Morph)>>mouseDown:<br>EllipseMorph(Morph)>>handleMouseDown:<br>MouseButtonEvent>>sentTo:<br>EllipseMorph(Morph)>>handleEvent:<br>MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:<br>[] in MorphicEventDispatcher>>dispatchMouseDown:with:<br>FullBlockClosure(BlockClosure)>>ensure:<br>MorphicEventDispatcher>>dispatchMouseDown:with:<br>MorphicEventDispatcher>>dispatchEvent:with:<br>EllipseMorph(Morph)>>processEvent:using:<br>EllipseMorph(Morph)>>processEvent:<br>[] in MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:<br>Array(SequenceableCollection)>>do:<br>HaloMorph(Morph)>>submorphsDo:<br>MorphicEventDispatcher>>dispatchEvent:toSubmorphsOf:<br>MorphicEventDispatcher>>dispatchEvent:withHandler:withMorph:<br>[] in MorphicEventDispatcher>>dispatchMouseDown:with:<br>FullBlockClosure(BlockClosure)>>ensure:<br>MorphicEventDispatcher>>dispatchMouseDown:with:<br>MorphicEventDispatcher>>dispatchEvent:with:<br>HaloMorph(Morph)>>processEvent:using:<br>MorphicEventDispatcher>>doProcessingForFocusEvent:with:<br>MorphicEventDispatcher>>dispatchFocusEventFully:with:<br>MorphicEventDispatcher>>dispatchFocusEventAllOver:with:<br>HaloMorph(SimpleHaloMorph)>>processFocusEvent:using:<br>HaloMorph(Morph)>>processFocusEvent:<br>[] in [] in [] in HandMorph>>sendFocusEvent:to:clear:<br>[] in ActiveEventVariable class(DynamicVariable class)>>value:during:<br>FullBlockClosure(BlockClosure)>>ensure:<br>ActiveEventVariable class(DynamicVariable class)>>value:during:<br>[] in ActiveEventVariable class>>value:during:<br>-- and more not shown --</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Aug 11, 2022 at 5:10 PM Tim Johnson <<a href="mailto:digit@sonic.net">digit@sonic.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi all,<br>
<br>
Fresh 6.0 image --<br>
<br>
1) drag out a Holder from Supplies flap<br>
2) drag out a Rectangle from Supplies flap<br>
3) drop Rectangle into Holder (note the Rectangle border becomes <br>
extra thick)<br>
4) open a Halo over the Holder<br>
5) try to click on the Green "copy/duplicate" button<br>
6) get a DNU/MNU: MorphicModel1(Object) doesNotUnderstand: <br>
#copyUniClassWith:<br>
<br>
Last time I tried this, it actually behaved differently. It was more <br>
like this:<br>
<br>
1) Drag out a Holder<br>
2) Drag out a Rectangle<br>
3) Drop the Rectangle into the Holder<br>
4) Copy the Holder using the Halo green copy/duplicate (this would work)<br>
5) change the color of the embedded Rectangle via its inspector<br>
6) Try to copy the Holder now (this would fail, again via #veryDeepCopy)<br>
<br>
It's also a little strange that the first Rectangle dropped into the <br>
Holder sees its border become thicker, while a second / third <br>
Rectangle do not see their border width change.<br>
<br>
Thanks,<br>
Tim<br>
<br>
<br>
</blockquote></div>