'From Squeak3.4alpha of 6 November 2002 [latest update: #5109] on 13 November 2002 at 7:03:36 pm'! "Change Set: dropFix-mir Date: 13 November 2002 Author: Michael Rueger Circumvents a huge delay that occurs only on the Mac upon external drop -- a situation that arrived a year ago in update 4522"! !HandMorph methodsFor: 'event handling' stamp: 'mir 11/13/2002 16:17'! processEvents "Process user input events from the local input devices." | evt evtBuf type hadAny | ActiveEvent ifNotNil:[ "Meaning that we were invoked from within an event response. Make sure z-order is up to date" self mouseOverHandler processMouseOver: lastMouseEvent]. hadAny _ false. [(evtBuf _ Sensor nextEvent) == nil] whileFalse:[ evt _ nil. "for unknown event types" type _ evtBuf at: 1. (type = EventTypeMouse) ifTrue:[evt _ self generateMouseEvent: evtBuf]. (type = EventTypeKeyboard) ifTrue:[evt _ self generateKeyboardEvent: evtBuf]. (type = EventTypeDragDropFiles) ifTrue:[evt _ self generateDropFilesEvent: evtBuf]. "All other events are ignored" ((type ~= EventTypeDragDropFiles) and: [evt isNil]) ifTrue: [^self]. evt == nil ifFalse:[ "Finally, handle it" self handleEvent: evt. hadAny _ true. "For better user feedback, return immediately after a mouse event has been processed." evt isMouse ifTrue:[^self]. ]. ]. "note: if we come here we didn't have any mouse events" (mouseClickState notNil) ifTrue:[ "No mouse events during this cycle. Make sure click states time out accordingly" mouseClickState handleEvent: lastMouseEvent asMouseMove from: self]. hadAny ifFalse:[ "No pending events. Make sure z-order is up to date" self mouseOverHandler processMouseOver: lastMouseEvent. ].! !