[Pharo-project] Next Issue ;-)
I'm trying to load cryptography 1.1 from the Universe browser. Everything seems to go well, and the dialog completes and exits. Immediately following that, whenever the mouse moves over any morphs, you get the below traceback. the ivars leftMorphs, enteredMorphs, and overMorphs are all nil, but are being treated as collections... UndefinedObject(Object)>>doesNotUnderstand: #includes: MouseOverHandler>>noticeMouseOver:event: HandMorph>>noticeMouseOver:event: OBTextMorphWithShout(Morph)>>handleMouseOver: MouseEvent>>sentTo: OBTextMorphWithShout(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: OBTextMorphWithShout(Morph)>>processEvent:using: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: TransformMorph(Morph)>>processEvent:using: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: OBPluggableTextMorphWithShout(Morph)>>processEvent:using: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: OBGroupingMorph(Morph)>>processEvent:using: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: SystemWindow(Morph)>>processEvent:using: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: HandMorph>>sendEvent:focus:clear: HandMorph>>sendMouseEvent: HandMorph>>handleEvent: MouseOverHandler>>processMouseOver: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: {[:h | ActiveHand := h. h processEvents. ActiveHand := nil]} Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in Project class>>spawnNewProcess {[[World doOneCycle. Processor yield. false] whileFalse. nil]} [] in BlockContext>>newProcess {[self value. Processor terminateActive]}
That is normally a symptom of something updating the World morphs in a non-UI process. Morphs should only be changed from the UI process otherwise all kind of inconsistencies can happen. WorldState addDeferredUIMessage: can be used top safely perform actions but, for some applications, finer control is needed. We have developed Squeak applications that are of necessity multi-process driven and were forced to modify WorldState to allow (mutex based) synchronisation with the event loop, thus avoiding the issues. Regards, Gary. ----- Original Message ----- From: "Brian Brown" <brian@ablelinktech.com> To: "An open mailing list to discuss any topics related to an open-sourceSmalltalk" <Pharo-project@lists.gforge.inria.fr> Sent: Monday, January 05, 2009 10:26 PM Subject: [Pharo-project] Next Issue ;-)
I'm trying to load cryptography 1.1 from the Universe browser. Everything seems to go well, and the dialog completes and exits. Immediately following that, whenever the mouse moves over any morphs, you get the below traceback. the ivars leftMorphs, enteredMorphs, and overMorphs are all nil, but are being treated as collections...
UndefinedObject(Object)>>doesNotUnderstand: #includes: MouseOverHandler>>noticeMouseOver:event: HandMorph>>noticeMouseOver:event: OBTextMorphWithShout(Morph)>>handleMouseOver: MouseEvent>>sentTo: OBTextMorphWithShout(Morph)>>handleEvent: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: OBTextMorphWithShout(Morph)>>processEvent:using: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: TransformMorph(Morph)>>processEvent:using: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: OBPluggableTextMorphWithShout(Morph)>>processEvent:using: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: OBGroupingMorph(Morph)>>processEvent:using: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: SystemWindow(Morph)>>processEvent:using: MorphicEventDispatcher>>dispatchDefault:with: MorphicEventDispatcher>>dispatchEvent:with: PasteUpMorph(Morph)>>processEvent:using: PasteUpMorph>>processEvent:using: PasteUpMorph(Morph)>>processEvent: HandMorph>>sendEvent:focus:clear: HandMorph>>sendMouseEvent: HandMorph>>handleEvent: MouseOverHandler>>processMouseOver: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: {[:h | ActiveHand := h. h processEvents. ActiveHand := nil]} Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in Project class>>spawnNewProcess {[[World doOneCycle. Processor yield. false] whileFalse. nil]} [] in BlockContext>>newProcess {[self value. Processor terminateActive]}
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
participants (2)
-
Brian Brown -
Gary Chambers