The Inbox: Morphic-nice.1614.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

The Inbox: Morphic-nice.1614.mcz

commits-2
Nicolas Cellier uploaded a new version of Morphic to project The Inbox:
http://source.squeak.org/inbox/Morphic-nice.1614.mcz

==================== Summary ====================

Name: Morphic-nice.1614
Author: nice
Time: 29 December 2019, 3:07:59.051586 pm
UUID: 003857a5-817d-4dc9-bf15-80c6bc584d51
Ancestors: Morphic-nice.1613

Forgot to remove the mouseWheelState ivar from HandMorph

The testNoObsoleteClasses was already failing, but we shall not make it worse...

=============== Diff against Morphic-nice.1613 ===============

Item was changed:
  Morph subclass: #HandMorph
+ instanceVariableNames: 'mouseFocus keyboardFocus eventListeners mouseListeners keyboardListeners eventCaptureFilters mouseCaptureFilters keyboardCaptureFilters mouseClickState mouseOverHandler lastMouseEvent targetOffset damageRecorder cacheCanvas cachedCanvasHasHoles temporaryCursor temporaryCursorOffset hardwareCursor hasChanged savedPatch userInitials lastEventBuffer genieGestureProcessor keyboardInterpreter'
- instanceVariableNames: 'mouseFocus keyboardFocus eventListeners mouseListeners keyboardListeners eventCaptureFilters mouseCaptureFilters keyboardCaptureFilters mouseClickState mouseOverHandler mouseWheelState lastMouseEvent targetOffset damageRecorder cacheCanvas cachedCanvasHasHoles temporaryCursor temporaryCursorOffset hardwareCursor hasChanged savedPatch userInitials lastEventBuffer genieGestureProcessor keyboardInterpreter'
  classVariableNames: 'CompositionWindowManager DoubleClickTime DragThreshold EventStats MinimalWheelDelta NewEventRules NormalCursor PasteBuffer SendMouseWheelToKeyboardFocus ShowEvents SynthesizeMouseWheelEvents'
  poolDictionaries: 'EventSensorConstants'
  category: 'Morphic-Kernel'!
 
  !HandMorph commentStamp: '<historical>' prior: 0!
  The cursor may be thought of as the HandMorph.  The hand's submorphs hold anything being carried by dragging.  
 
  There is some minimal support for multiple hands in the same world.!


Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Morphic-nice.1614.mcz

Nicolas Cellier
Hi all,
loading this package triggers an Exception - see below.
Since I triggered the package load thru UI, a HandMorph method is still active on the stack.
But since I removed an ivar, that's the old method, not the up-to-date method...
Hence it has wrong ivar offsets, and access the wrong instance variable.
Is there any way I can abort/restart the UI process in postscript?
Or should I use complex preamble that duplicates HandMorph class, let it adopt current hand,
then complex postscript that migrate hand to the updated HandMorph class?

If you have a less overkill idea, i take it :)


29 December 2019 11:37:47.264169 pm

VM: Win32 - Smalltalk
Image: Squeak5.3beta [latest update: #19301]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir X:\Smalltalk\opensmalltalk-vm\image
Trusted Dir X:\Smalltalk\opensmalltalk-vm\image\nicolas
Untrusted Dir \\Mac\Home\Documents\My Squeak

Point(Object)>>doesNotUnderstand: #hand
Receiver: 85@9
Arguments and temporary variables:
aMessage: hand
exception: MessageNotUnderstood: Point>>hand
resumeValue: nil
Receiver's instance variables:
x: 85
y: 9

MouseOverHandler>>processMouseOver:
Receiver: a MouseOverHandler
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
mouseOverMorphs: {a MenuItemMorph(1214112)'copy bug report to clipboard' . a MenuMorph...etc...
enteredMorphs: a WriteStream
overMorphs: a WriteStream
leftMorphs: an OrderedCollection()

HandMorph>>handleEvent:
Receiver: a HandMorph(72556)
Arguments and temporary variables:
unfilteredEvent: [419@57 mouseUp ( red ) 8809265]
filteredEvent: [419@57 mouseUp ( red ) 8809265]
Receiver's instance variables:
bounds: 668@437 corner: 684@453
owner: a PasteUpMorph(2434915) [world]
submorphs: #()
fullBounds: 668@437 corner: 684@453
color: Color blue
extension: a MorphExtension (4039828) [eventHandler = an EventHandler]  [other:...etc...
mouseFocus: nil
keyboardFocus: a PluggableListMorphPlus(1825828)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
eventCaptureFilters: nil
mouseCaptureFilters: nil
keyboardCaptureFilters: a WeakArray(a HandMorph(72556))
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [668@437 mouseUp ( red ) 9055140]
targetOffset: 45@12
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: false
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 9055140 668 437 0 0 1 1)
genieGestureProcessor: nil
keyboardInterpreter: an UTF32InputInterpreter

HandMorph>>processEvents
Receiver: a HandMorph(72556)
Arguments and temporary variables:
evt: [419@57 mouseUp ( red ) 8809265]
evtBuf: #(1 8809265 419 57 0 0 1 1)
type: 1
hadAny: false
Receiver's instance variables:
bounds: 668@437 corner: 684@453
owner: a PasteUpMorph(2434915) [world]
submorphs: #()
fullBounds: 668@437 corner: 684@453
color: Color blue
extension: a MorphExtension (4039828) [eventHandler = an EventHandler]  [other:...etc...
mouseFocus: nil
keyboardFocus: a PluggableListMorphPlus(1825828)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
eventCaptureFilters: nil
mouseCaptureFilters: nil
keyboardCaptureFilters: a WeakArray(a HandMorph(72556))
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [668@437 mouseUp ( red ) 9055140]
targetOffset: 45@12
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: false
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 9055140 668 437 0 0 1 1)
genieGestureProcessor: nil
keyboardInterpreter: an UTF32InputInterpreter

[] in WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

Array(SequenceableCollection)>>do:
Receiver: {a HandMorph(72556)}
Arguments and temporary variables:
aBlock: [closure] in WorldState>>doOneCycleNowFor:
index: 1
indexLimiT: 1
Receiver's instance variables:
{a HandMorph(72556)}

WorldState>>handsDo:
Receiver: a WorldState
Arguments and temporary variables:
aBlock: [closure] in WorldState>>doOneCycleNowFor:
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a PasteUpMorph(2434915) [world]
capturingGesture: #(false)
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

WorldState>>doOneCycleFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a PasteUpMorph(2434915) [world]
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

PasteUpMorph>>doOneCycle
Receiver: a PasteUpMorph(2434915) [world]
Arguments and temporary variables:

Receiver's instance variables:
bounds: 0@0 corner: 1024@664
owner: nil
submorphs: {a PluggableSystemWindow<MessageNotUnderstood: Point>>hand>(306803) ...etc...
fullBounds: 0@0 corner: 1024@664
color: (Color r: 0.251 g: 0.259 b: 0.267)
extension: a MorphExtension (3123555) [eventHandler = an EventHandler]  [other:...etc...
borderWidth: 0
borderColor: (Color r: 0.515 g: 0.181 b: 0.263)
presenter: an EtoysPresenter (1693676)
model: a MorphicModel(3077142)
cursor: 1
padding: 3
backgroundMorph: nil
turtleTrailsForm: nil
turtlePen: nil
lastTurtlePositions: nil
isPartsBin: nil
indicateCursor: nil
wantsMouseOverHalos: nil
worldState: a WorldState
griddingOn: nil

[] in MorphicProject>>spawnNewProcess
Receiver: a MorphicProject (Unnamed1) in a PasteUpMorph(2434915) [world]
Arguments and temporary variables:

Receiver's instance variables:
dependents: nil
world: a PasteUpMorph(2434915) [world]
uiManager: a MorphicUIManager
changeSet: a ChangeSet named Unnamed1
transcript: a TranscriptStream
parentProject: a MorphicProject (Unnamed1) in a PasteUpMorph(2434915) [world]
previousProject: nil
displayDepth: 32
viewSize: 151@132
thumbnail: Form(151x132x32)
nextProject: nil
projectParameters: an IdentityDictionary(#PrevailingProjectFlags->an IdentityDictionary...etc...
version: nil
urlList: nil
lastDirectory: nil
lastSavedAtSeconds: nil
projectPreferenceFlagDictionary: an IdentityDictionary(#showSharedFlaps->true #showWorldMainDockingBar...etc...
resourceManager: a ResourceManager
uiProcess: a Process in nil

[] in BlockClosure>>newProcess
Receiver: [closure] in MorphicProject>>spawnNewProcess
Arguments and temporary variables:

Receiver's instance variables:
outerContext: MorphicProject>>spawnNewProcess
startpc: 93
numArgs: 0


--- The full stack ---
Point(Object)>>doesNotUnderstand: #hand
MouseOverHandler>>processMouseOver:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in MorphicProject>>spawnNewProcess
[] in BlockClosure>>newProcess

Le dim. 29 déc. 2019 à 15:08, <[hidden email]> a écrit :
Nicolas Cellier uploaded a new version of Morphic to project The Inbox:
http://source.squeak.org/inbox/Morphic-nice.1614.mcz

==================== Summary ====================

Name: Morphic-nice.1614
Author: nice
Time: 29 December 2019, 3:07:59.051586 pm
UUID: 003857a5-817d-4dc9-bf15-80c6bc584d51
Ancestors: Morphic-nice.1613

Forgot to remove the mouseWheelState ivar from HandMorph

The testNoObsoleteClasses was already failing, but we shall not make it worse...

=============== Diff against Morphic-nice.1613 ===============

Item was changed:
  Morph subclass: #HandMorph
+       instanceVariableNames: 'mouseFocus keyboardFocus eventListeners mouseListeners keyboardListeners eventCaptureFilters mouseCaptureFilters keyboardCaptureFilters mouseClickState mouseOverHandler lastMouseEvent targetOffset damageRecorder cacheCanvas cachedCanvasHasHoles temporaryCursor temporaryCursorOffset hardwareCursor hasChanged savedPatch userInitials lastEventBuffer genieGestureProcessor keyboardInterpreter'
-       instanceVariableNames: 'mouseFocus keyboardFocus eventListeners mouseListeners keyboardListeners eventCaptureFilters mouseCaptureFilters keyboardCaptureFilters mouseClickState mouseOverHandler mouseWheelState lastMouseEvent targetOffset damageRecorder cacheCanvas cachedCanvasHasHoles temporaryCursor temporaryCursorOffset hardwareCursor hasChanged savedPatch userInitials lastEventBuffer genieGestureProcessor keyboardInterpreter'
        classVariableNames: 'CompositionWindowManager DoubleClickTime DragThreshold EventStats MinimalWheelDelta NewEventRules NormalCursor PasteBuffer SendMouseWheelToKeyboardFocus ShowEvents SynthesizeMouseWheelEvents'
        poolDictionaries: 'EventSensorConstants'
        category: 'Morphic-Kernel'!

  !HandMorph commentStamp: '<historical>' prior: 0!
  The cursor may be thought of as the HandMorph.  The hand's submorphs hold anything being carried by dragging. 

  There is some minimal support for multiple hands in the same world.!




Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Morphic-nice.1614.mcz

marcel.taeumel
Hi Nicolas. :-)

If you have a less overkill idea, i take it :)

Yeah, I think overkill is just necessary in this case. BUT I would rather keep the MouseWheelState. See other post:

Best,
Marcel

Am 29.12.2019 23:47:46 schrieb Nicolas Cellier <[hidden email]>:

Hi all,
loading this package triggers an Exception - see below.
Since I triggered the package load thru UI, a HandMorph method is still active on the stack.
But since I removed an ivar, that's the old method, not the up-to-date method...
Hence it has wrong ivar offsets, and access the wrong instance variable.
Is there any way I can abort/restart the UI process in postscript?
Or should I use complex preamble that duplicates HandMorph class, let it adopt current hand,
then complex postscript that migrate hand to the updated HandMorph class?

If you have a less overkill idea, i take it :)


29 December 2019 11:37:47.264169 pm

VM: Win32 - Smalltalk
Image: Squeak5.3beta [latest update: #19301]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir X:\Smalltalk\opensmalltalk-vm\image
Trusted Dir X:\Smalltalk\opensmalltalk-vm\image\nicolas
Untrusted Dir \\Mac\Home\Documents\My Squeak

Point(Object)>>doesNotUnderstand: #hand
Receiver: 85@9
Arguments and temporary variables:
aMessage: hand
exception: MessageNotUnderstood: Point>>hand
resumeValue: nil
Receiver's instance variables:
x: 85
y: 9

MouseOverHandler>>processMouseOver:
Receiver: a MouseOverHandler
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
mouseOverMorphs: {a MenuItemMorph(1214112)'copy bug report to clipboard' . a MenuMorph...etc...
enteredMorphs: a WriteStream
overMorphs: a WriteStream
leftMorphs: an OrderedCollection()

HandMorph>>handleEvent:
Receiver: a HandMorph(72556)
Arguments and temporary variables:
unfilteredEvent: [419@57 mouseUp ( red ) 8809265]
filteredEvent: [419@57 mouseUp ( red ) 8809265]
Receiver's instance variables:
bounds: 668@437 corner: 684@453
owner: a PasteUpMorph(2434915) [world]
submorphs: #()
fullBounds: 668@437 corner: 684@453
color: Color blue
extension: a MorphExtension (4039828) [eventHandler = an EventHandler]  [other:...etc...
mouseFocus: nil
keyboardFocus: a PluggableListMorphPlus(1825828)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
eventCaptureFilters: nil
mouseCaptureFilters: nil
keyboardCaptureFilters: a WeakArray(a HandMorph(72556))
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [668@437 mouseUp ( red ) 9055140]
targetOffset: 45@12
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: false
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 9055140 668 437 0 0 1 1)
genieGestureProcessor: nil
keyboardInterpreter: an UTF32InputInterpreter

HandMorph>>processEvents
Receiver: a HandMorph(72556)
Arguments and temporary variables:
evt: [419@57 mouseUp ( red ) 8809265]
evtBuf: #(1 8809265 419 57 0 0 1 1)
type: 1
hadAny: false
Receiver's instance variables:
bounds: 668@437 corner: 684@453
owner: a PasteUpMorph(2434915) [world]
submorphs: #()
fullBounds: 668@437 corner: 684@453
color: Color blue
extension: a MorphExtension (4039828) [eventHandler = an EventHandler]  [other:...etc...
mouseFocus: nil
keyboardFocus: a PluggableListMorphPlus(1825828)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
eventCaptureFilters: nil
mouseCaptureFilters: nil
keyboardCaptureFilters: a WeakArray(a HandMorph(72556))
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [668@437 mouseUp ( red ) 9055140]
targetOffset: 45@12
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: false
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 9055140 668 437 0 0 1 1)
genieGestureProcessor: nil
keyboardInterpreter: an UTF32InputInterpreter

[] in WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

Array(SequenceableCollection)>>do:
Receiver: {a HandMorph(72556)}
Arguments and temporary variables:
aBlock: [closure] in WorldState>>doOneCycleNowFor:
index: 1
indexLimiT: 1
Receiver's instance variables:
{a HandMorph(72556)}

WorldState>>handsDo:
Receiver: a WorldState
Arguments and temporary variables:
aBlock: [closure] in WorldState>>doOneCycleNowFor:
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a PasteUpMorph(2434915) [world]
capturingGesture: #(false)
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

WorldState>>doOneCycleFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a PasteUpMorph(2434915) [world]
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

PasteUpMorph>>doOneCycle
Receiver: a PasteUpMorph(2434915) [world]
Arguments and temporary variables:

Receiver's instance variables:
bounds: 0@0 corner: 1024@664
owner: nil
submorphs: {a PluggableSystemWindow<MessageNotUnderstood: Point>>hand>(306803) ...etc...
fullBounds: 0@0 corner: 1024@664
color: (Color r: 0.251 g: 0.259 b: 0.267)
extension: a MorphExtension (3123555) [eventHandler = an EventHandler]  [other:...etc...
borderWidth: 0
borderColor: (Color r: 0.515 g: 0.181 b: 0.263)
presenter: an EtoysPresenter (1693676)
model: a MorphicModel(3077142)
cursor: 1
padding: 3
backgroundMorph: nil
turtleTrailsForm: nil
turtlePen: nil
lastTurtlePositions: nil
isPartsBin: nil
indicateCursor: nil
wantsMouseOverHalos: nil
worldState: a WorldState
griddingOn: nil

[] in MorphicProject>>spawnNewProcess
Receiver: a MorphicProject (Unnamed1) in a PasteUpMorph(2434915) [world]
Arguments and temporary variables:

Receiver's instance variables:
dependents: nil
world: a PasteUpMorph(2434915) [world]
uiManager: a MorphicUIManager
changeSet: a ChangeSet named Unnamed1
transcript: a TranscriptStream
parentProject: a MorphicProject (Unnamed1) in a PasteUpMorph(2434915) [world]
previousProject: nil
displayDepth: 32
viewSize: 151@132
thumbnail: Form(151x132x32)
nextProject: nil
projectParameters: an IdentityDictionary(#PrevailingProjectFlags->an IdentityDictionary...etc...
version: nil
urlList: nil
lastDirectory: nil
lastSavedAtSeconds: nil
projectPreferenceFlagDictionary: an IdentityDictionary(#showSharedFlaps->true #showWorldMainDockingBar...etc...
resourceManager: a ResourceManager
uiProcess: a Process in nil

[] in BlockClosure>>newProcess
Receiver: [closure] in MorphicProject>>spawnNewProcess
Arguments and temporary variables:

Receiver's instance variables:
outerContext: MorphicProject>>spawnNewProcess
startpc: 93
numArgs: 0


--- The full stack ---
Point(Object)>>doesNotUnderstand: #hand
MouseOverHandler>>processMouseOver:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in MorphicProject>>spawnNewProcess
[] in BlockClosure>>newProcess

Le dim. 29 déc. 2019 à 15:08, <[hidden email]> a écrit :
Nicolas Cellier uploaded a new version of Morphic to project The Inbox:
http://source.squeak.org/inbox/Morphic-nice.1614.mcz

==================== Summary ====================

Name: Morphic-nice.1614
Author: nice
Time: 29 December 2019, 3:07:59.051586 pm
UUID: 003857a5-817d-4dc9-bf15-80c6bc584d51
Ancestors: Morphic-nice.1613

Forgot to remove the mouseWheelState ivar from HandMorph

The testNoObsoleteClasses was already failing, but we shall not make it worse...

=============== Diff against Morphic-nice.1613 ===============

Item was changed:
  Morph subclass: #HandMorph
+       instanceVariableNames: 'mouseFocus keyboardFocus eventListeners mouseListeners keyboardListeners eventCaptureFilters mouseCaptureFilters keyboardCaptureFilters mouseClickState mouseOverHandler lastMouseEvent targetOffset damageRecorder cacheCanvas cachedCanvasHasHoles temporaryCursor temporaryCursorOffset hardwareCursor hasChanged savedPatch userInitials lastEventBuffer genieGestureProcessor keyboardInterpreter'
-       instanceVariableNames: 'mouseFocus keyboardFocus eventListeners mouseListeners keyboardListeners eventCaptureFilters mouseCaptureFilters keyboardCaptureFilters mouseClickState mouseOverHandler mouseWheelState lastMouseEvent targetOffset damageRecorder cacheCanvas cachedCanvasHasHoles temporaryCursor temporaryCursorOffset hardwareCursor hasChanged savedPatch userInitials lastEventBuffer genieGestureProcessor keyboardInterpreter'
        classVariableNames: 'CompositionWindowManager DoubleClickTime DragThreshold EventStats MinimalWheelDelta NewEventRules NormalCursor PasteBuffer SendMouseWheelToKeyboardFocus ShowEvents SynthesizeMouseWheelEvents'
        poolDictionaries: 'EventSensorConstants'
        category: 'Morphic-Kernel'!

  !HandMorph commentStamp: '<historical>' prior: 0!
  The cursor may be thought of as the HandMorph.  The hand's submorphs hold anything being carried by dragging. 

  There is some minimal support for multiple hands in the same world.!




Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Morphic-nice.1614.mcz

Nicolas Cellier
Morphic-nice.1615 fixes that, I should have put in TreatedInbox

Le lun. 6 janv. 2020 à 13:52, Marcel Taeumel <[hidden email]> a écrit :
Hi Nicolas. :-)

If you have a less overkill idea, i take it :)

Yeah, I think overkill is just necessary in this case. BUT I would rather keep the MouseWheelState. See other post:

Best,
Marcel

Am 29.12.2019 23:47:46 schrieb Nicolas Cellier <[hidden email]>:

Hi all,
loading this package triggers an Exception - see below.
Since I triggered the package load thru UI, a HandMorph method is still active on the stack.
But since I removed an ivar, that's the old method, not the up-to-date method...
Hence it has wrong ivar offsets, and access the wrong instance variable.
Is there any way I can abort/restart the UI process in postscript?
Or should I use complex preamble that duplicates HandMorph class, let it adopt current hand,
then complex postscript that migrate hand to the updated HandMorph class?

If you have a less overkill idea, i take it :)


29 December 2019 11:37:47.264169 pm

VM: Win32 - Smalltalk
Image: Squeak5.3beta [latest update: #19301]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir X:\Smalltalk\opensmalltalk-vm\image
Trusted Dir X:\Smalltalk\opensmalltalk-vm\image\nicolas
Untrusted Dir \\Mac\Home\Documents\My Squeak

Point(Object)>>doesNotUnderstand: #hand
Receiver: 85@9
Arguments and temporary variables:
aMessage: hand
exception: MessageNotUnderstood: Point>>hand
resumeValue: nil
Receiver's instance variables:
x: 85
y: 9

MouseOverHandler>>processMouseOver:
Receiver: a MouseOverHandler
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
mouseOverMorphs: {a MenuItemMorph(1214112)'copy bug report to clipboard' . a MenuMorph...etc...
enteredMorphs: a WriteStream
overMorphs: a WriteStream
leftMorphs: an OrderedCollection()

HandMorph>>handleEvent:
Receiver: a HandMorph(72556)
Arguments and temporary variables:
unfilteredEvent: [419@57 mouseUp ( red ) 8809265]
filteredEvent: [419@57 mouseUp ( red ) 8809265]
Receiver's instance variables:
bounds: 668@437 corner: 684@453
owner: a PasteUpMorph(2434915) [world]
submorphs: #()
fullBounds: 668@437 corner: 684@453
color: Color blue
extension: a MorphExtension (4039828) [eventHandler = an EventHandler]  [other:...etc...
mouseFocus: nil
keyboardFocus: a PluggableListMorphPlus(1825828)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
eventCaptureFilters: nil
mouseCaptureFilters: nil
keyboardCaptureFilters: a WeakArray(a HandMorph(72556))
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [668@437 mouseUp ( red ) 9055140]
targetOffset: 45@12
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: false
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 9055140 668 437 0 0 1 1)
genieGestureProcessor: nil
keyboardInterpreter: an UTF32InputInterpreter

HandMorph>>processEvents
Receiver: a HandMorph(72556)
Arguments and temporary variables:
evt: [419@57 mouseUp ( red ) 8809265]
evtBuf: #(1 8809265 419 57 0 0 1 1)
type: 1
hadAny: false
Receiver's instance variables:
bounds: 668@437 corner: 684@453
owner: a PasteUpMorph(2434915) [world]
submorphs: #()
fullBounds: 668@437 corner: 684@453
color: Color blue
extension: a MorphExtension (4039828) [eventHandler = an EventHandler]  [other:...etc...
mouseFocus: nil
keyboardFocus: a PluggableListMorphPlus(1825828)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
eventCaptureFilters: nil
mouseCaptureFilters: nil
keyboardCaptureFilters: a WeakArray(a HandMorph(72556))
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [668@437 mouseUp ( red ) 9055140]
targetOffset: 45@12
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: false
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 9055140 668 437 0 0 1 1)
genieGestureProcessor: nil
keyboardInterpreter: an UTF32InputInterpreter

[] in WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

Array(SequenceableCollection)>>do:
Receiver: {a HandMorph(72556)}
Arguments and temporary variables:
aBlock: [closure] in WorldState>>doOneCycleNowFor:
index: 1
indexLimiT: 1
Receiver's instance variables:
{a HandMorph(72556)}

WorldState>>handsDo:
Receiver: a WorldState
Arguments and temporary variables:
aBlock: [closure] in WorldState>>doOneCycleNowFor:
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a PasteUpMorph(2434915) [world]
capturingGesture: #(false)
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

WorldState>>doOneCycleFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a PasteUpMorph(2434915) [world]
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

PasteUpMorph>>doOneCycle
Receiver: a PasteUpMorph(2434915) [world]
Arguments and temporary variables:

Receiver's instance variables:
bounds: 0@0 corner: 1024@664
owner: nil
submorphs: {a PluggableSystemWindow<MessageNotUnderstood: Point>>hand>(306803) ...etc...
fullBounds: 0@0 corner: 1024@664
color: (Color r: 0.251 g: 0.259 b: 0.267)
extension: a MorphExtension (3123555) [eventHandler = an EventHandler]  [other:...etc...
borderWidth: 0
borderColor: (Color r: 0.515 g: 0.181 b: 0.263)
presenter: an EtoysPresenter (1693676)
model: a MorphicModel(3077142)
cursor: 1
padding: 3
backgroundMorph: nil
turtleTrailsForm: nil
turtlePen: nil
lastTurtlePositions: nil
isPartsBin: nil
indicateCursor: nil
wantsMouseOverHalos: nil
worldState: a WorldState
griddingOn: nil

[] in MorphicProject>>spawnNewProcess
Receiver: a MorphicProject (Unnamed1) in a PasteUpMorph(2434915) [world]
Arguments and temporary variables:

Receiver's instance variables:
dependents: nil
world: a PasteUpMorph(2434915) [world]
uiManager: a MorphicUIManager
changeSet: a ChangeSet named Unnamed1
transcript: a TranscriptStream
parentProject: a MorphicProject (Unnamed1) in a PasteUpMorph(2434915) [world]
previousProject: nil
displayDepth: 32
viewSize: 151@132
thumbnail: Form(151x132x32)
nextProject: nil
projectParameters: an IdentityDictionary(#PrevailingProjectFlags->an IdentityDictionary...etc...
version: nil
urlList: nil
lastDirectory: nil
lastSavedAtSeconds: nil
projectPreferenceFlagDictionary: an IdentityDictionary(#showSharedFlaps->true #showWorldMainDockingBar...etc...
resourceManager: a ResourceManager
uiProcess: a Process in nil

[] in BlockClosure>>newProcess
Receiver: [closure] in MorphicProject>>spawnNewProcess
Arguments and temporary variables:

Receiver's instance variables:
outerContext: MorphicProject>>spawnNewProcess
startpc: 93
numArgs: 0


--- The full stack ---
Point(Object)>>doesNotUnderstand: #hand
MouseOverHandler>>processMouseOver:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in MorphicProject>>spawnNewProcess
[] in BlockClosure>>newProcess

Le dim. 29 déc. 2019 à 15:08, <[hidden email]> a écrit :
Nicolas Cellier uploaded a new version of Morphic to project The Inbox:
http://source.squeak.org/inbox/Morphic-nice.1614.mcz

==================== Summary ====================

Name: Morphic-nice.1614
Author: nice
Time: 29 December 2019, 3:07:59.051586 pm
UUID: 003857a5-817d-4dc9-bf15-80c6bc584d51
Ancestors: Morphic-nice.1613

Forgot to remove the mouseWheelState ivar from HandMorph

The testNoObsoleteClasses was already failing, but we shall not make it worse...

=============== Diff against Morphic-nice.1613 ===============

Item was changed:
  Morph subclass: #HandMorph
+       instanceVariableNames: 'mouseFocus keyboardFocus eventListeners mouseListeners keyboardListeners eventCaptureFilters mouseCaptureFilters keyboardCaptureFilters mouseClickState mouseOverHandler lastMouseEvent targetOffset damageRecorder cacheCanvas cachedCanvasHasHoles temporaryCursor temporaryCursorOffset hardwareCursor hasChanged savedPatch userInitials lastEventBuffer genieGestureProcessor keyboardInterpreter'
-       instanceVariableNames: 'mouseFocus keyboardFocus eventListeners mouseListeners keyboardListeners eventCaptureFilters mouseCaptureFilters keyboardCaptureFilters mouseClickState mouseOverHandler mouseWheelState lastMouseEvent targetOffset damageRecorder cacheCanvas cachedCanvasHasHoles temporaryCursor temporaryCursorOffset hardwareCursor hasChanged savedPatch userInitials lastEventBuffer genieGestureProcessor keyboardInterpreter'
        classVariableNames: 'CompositionWindowManager DoubleClickTime DragThreshold EventStats MinimalWheelDelta NewEventRules NormalCursor PasteBuffer SendMouseWheelToKeyboardFocus ShowEvents SynthesizeMouseWheelEvents'
        poolDictionaries: 'EventSensorConstants'
        category: 'Morphic-Kernel'!

  !HandMorph commentStamp: '<historical>' prior: 0!
  The cursor may be thought of as the HandMorph.  The hand's submorphs hold anything being carried by dragging. 

  There is some minimal support for multiple hands in the same world.!





Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Morphic-nice.1614.mcz

Nicolas Cellier
alternatively,
using messages instead of direct inst var access also solves the recompilation problem...
(at the price of exposing those inst var thru messages...)

Le lun. 6 janv. 2020 à 14:08, Nicolas Cellier <[hidden email]> a écrit :
Morphic-nice.1615 fixes that, I should have put in TreatedInbox

Le lun. 6 janv. 2020 à 13:52, Marcel Taeumel <[hidden email]> a écrit :
Hi Nicolas. :-)

If you have a less overkill idea, i take it :)

Yeah, I think overkill is just necessary in this case. BUT I would rather keep the MouseWheelState. See other post:

Best,
Marcel

Am 29.12.2019 23:47:46 schrieb Nicolas Cellier <[hidden email]>:

Hi all,
loading this package triggers an Exception - see below.
Since I triggered the package load thru UI, a HandMorph method is still active on the stack.
But since I removed an ivar, that's the old method, not the up-to-date method...
Hence it has wrong ivar offsets, and access the wrong instance variable.
Is there any way I can abort/restart the UI process in postscript?
Or should I use complex preamble that duplicates HandMorph class, let it adopt current hand,
then complex postscript that migrate hand to the updated HandMorph class?

If you have a less overkill idea, i take it :)


29 December 2019 11:37:47.264169 pm

VM: Win32 - Smalltalk
Image: Squeak5.3beta [latest update: #19301]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir X:\Smalltalk\opensmalltalk-vm\image
Trusted Dir X:\Smalltalk\opensmalltalk-vm\image\nicolas
Untrusted Dir \\Mac\Home\Documents\My Squeak

Point(Object)>>doesNotUnderstand: #hand
Receiver: 85@9
Arguments and temporary variables:
aMessage: hand
exception: MessageNotUnderstood: Point>>hand
resumeValue: nil
Receiver's instance variables:
x: 85
y: 9

MouseOverHandler>>processMouseOver:
Receiver: a MouseOverHandler
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
mouseOverMorphs: {a MenuItemMorph(1214112)'copy bug report to clipboard' . a MenuMorph...etc...
enteredMorphs: a WriteStream
overMorphs: a WriteStream
leftMorphs: an OrderedCollection()

HandMorph>>handleEvent:
Receiver: a HandMorph(72556)
Arguments and temporary variables:
unfilteredEvent: [419@57 mouseUp ( red ) 8809265]
filteredEvent: [419@57 mouseUp ( red ) 8809265]
Receiver's instance variables:
bounds: 668@437 corner: 684@453
owner: a PasteUpMorph(2434915) [world]
submorphs: #()
fullBounds: 668@437 corner: 684@453
color: Color blue
extension: a MorphExtension (4039828) [eventHandler = an EventHandler]  [other:...etc...
mouseFocus: nil
keyboardFocus: a PluggableListMorphPlus(1825828)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
eventCaptureFilters: nil
mouseCaptureFilters: nil
keyboardCaptureFilters: a WeakArray(a HandMorph(72556))
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [668@437 mouseUp ( red ) 9055140]
targetOffset: 45@12
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: false
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 9055140 668 437 0 0 1 1)
genieGestureProcessor: nil
keyboardInterpreter: an UTF32InputInterpreter

HandMorph>>processEvents
Receiver: a HandMorph(72556)
Arguments and temporary variables:
evt: [419@57 mouseUp ( red ) 8809265]
evtBuf: #(1 8809265 419 57 0 0 1 1)
type: 1
hadAny: false
Receiver's instance variables:
bounds: 668@437 corner: 684@453
owner: a PasteUpMorph(2434915) [world]
submorphs: #()
fullBounds: 668@437 corner: 684@453
color: Color blue
extension: a MorphExtension (4039828) [eventHandler = an EventHandler]  [other:...etc...
mouseFocus: nil
keyboardFocus: a PluggableListMorphPlus(1825828)
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
eventCaptureFilters: nil
mouseCaptureFilters: nil
keyboardCaptureFilters: a WeakArray(a HandMorph(72556))
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [668@437 mouseUp ( red ) 9055140]
targetOffset: 45@12
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: false
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 9055140 668 437 0 0 1 1)
genieGestureProcessor: nil
keyboardInterpreter: an UTF32InputInterpreter

[] in WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

Array(SequenceableCollection)>>do:
Receiver: {a HandMorph(72556)}
Arguments and temporary variables:
aBlock: [closure] in WorldState>>doOneCycleNowFor:
index: 1
indexLimiT: 1
Receiver's instance variables:
{a HandMorph(72556)}

WorldState>>handsDo:
Receiver: a WorldState
Arguments and temporary variables:
aBlock: [closure] in WorldState>>doOneCycleNowFor:
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a PasteUpMorph(2434915) [world]
capturingGesture: #(false)
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

WorldState>>doOneCycleFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a PasteUpMorph(2434915) [world]
Receiver's instance variables:
hands: {a HandMorph(72556)}
activeHand: a HandMorph(72556)
viewBox: 0@0 corner: 1024@664
canvas: a FormCanvas on: DisplayScreen(1024x664x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3939335)'23:37:47')(a ClockMorph...etc...
lastStepTime: 3755111867234
lastStepMessage: nil
lastCycleTime: 3755111867257
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3755111867234
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)

PasteUpMorph>>doOneCycle
Receiver: a PasteUpMorph(2434915) [world]
Arguments and temporary variables:

Receiver's instance variables:
bounds: 0@0 corner: 1024@664
owner: nil
submorphs: {a PluggableSystemWindow<MessageNotUnderstood: Point>>hand>(306803) ...etc...
fullBounds: 0@0 corner: 1024@664
color: (Color r: 0.251 g: 0.259 b: 0.267)
extension: a MorphExtension (3123555) [eventHandler = an EventHandler]  [other:...etc...
borderWidth: 0
borderColor: (Color r: 0.515 g: 0.181 b: 0.263)
presenter: an EtoysPresenter (1693676)
model: a MorphicModel(3077142)
cursor: 1
padding: 3
backgroundMorph: nil
turtleTrailsForm: nil
turtlePen: nil
lastTurtlePositions: nil
isPartsBin: nil
indicateCursor: nil
wantsMouseOverHalos: nil
worldState: a WorldState
griddingOn: nil

[] in MorphicProject>>spawnNewProcess
Receiver: a MorphicProject (Unnamed1) in a PasteUpMorph(2434915) [world]
Arguments and temporary variables:

Receiver's instance variables:
dependents: nil
world: a PasteUpMorph(2434915) [world]
uiManager: a MorphicUIManager
changeSet: a ChangeSet named Unnamed1
transcript: a TranscriptStream
parentProject: a MorphicProject (Unnamed1) in a PasteUpMorph(2434915) [world]
previousProject: nil
displayDepth: 32
viewSize: 151@132
thumbnail: Form(151x132x32)
nextProject: nil
projectParameters: an IdentityDictionary(#PrevailingProjectFlags->an IdentityDictionary...etc...
version: nil
urlList: nil
lastDirectory: nil
lastSavedAtSeconds: nil
projectPreferenceFlagDictionary: an IdentityDictionary(#showSharedFlaps->true #showWorldMainDockingBar...etc...
resourceManager: a ResourceManager
uiProcess: a Process in nil

[] in BlockClosure>>newProcess
Receiver: [closure] in MorphicProject>>spawnNewProcess
Arguments and temporary variables:

Receiver's instance variables:
outerContext: MorphicProject>>spawnNewProcess
startpc: 93
numArgs: 0


--- The full stack ---
Point(Object)>>doesNotUnderstand: #hand
MouseOverHandler>>processMouseOver:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in MorphicProject>>spawnNewProcess
[] in BlockClosure>>newProcess

Le dim. 29 déc. 2019 à 15:08, <[hidden email]> a écrit :
Nicolas Cellier uploaded a new version of Morphic to project The Inbox:
http://source.squeak.org/inbox/Morphic-nice.1614.mcz

==================== Summary ====================

Name: Morphic-nice.1614
Author: nice
Time: 29 December 2019, 3:07:59.051586 pm
UUID: 003857a5-817d-4dc9-bf15-80c6bc584d51
Ancestors: Morphic-nice.1613

Forgot to remove the mouseWheelState ivar from HandMorph

The testNoObsoleteClasses was already failing, but we shall not make it worse...

=============== Diff against Morphic-nice.1613 ===============

Item was changed:
  Morph subclass: #HandMorph
+       instanceVariableNames: 'mouseFocus keyboardFocus eventListeners mouseListeners keyboardListeners eventCaptureFilters mouseCaptureFilters keyboardCaptureFilters mouseClickState mouseOverHandler lastMouseEvent targetOffset damageRecorder cacheCanvas cachedCanvasHasHoles temporaryCursor temporaryCursorOffset hardwareCursor hasChanged savedPatch userInitials lastEventBuffer genieGestureProcessor keyboardInterpreter'
-       instanceVariableNames: 'mouseFocus keyboardFocus eventListeners mouseListeners keyboardListeners eventCaptureFilters mouseCaptureFilters keyboardCaptureFilters mouseClickState mouseOverHandler mouseWheelState lastMouseEvent targetOffset damageRecorder cacheCanvas cachedCanvasHasHoles temporaryCursor temporaryCursorOffset hardwareCursor hasChanged savedPatch userInitials lastEventBuffer genieGestureProcessor keyboardInterpreter'
        classVariableNames: 'CompositionWindowManager DoubleClickTime DragThreshold EventStats MinimalWheelDelta NewEventRules NormalCursor PasteBuffer SendMouseWheelToKeyboardFocus ShowEvents SynthesizeMouseWheelEvents'
        poolDictionaries: 'EventSensorConstants'
        category: 'Morphic-Kernel'!

  !HandMorph commentStamp: '<historical>' prior: 0!
  The cursor may be thought of as the HandMorph.  The hand's submorphs hold anything being carried by dragging. 

  There is some minimal support for multiple hands in the same world.!