<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>