Why do we have this twice in processEvents?
self mouseOverHandler processMouseOver: lastMouseEvent ? Well, maybe that is not there that things happen but if you spy on mouseEnter and mouseLeave events, you will notice that they are both sent **twice** all the time. I think that this happens so often that we would benefit from getting rid of that twice enter/leave thing (and it is really annoying to have to deal with these two events when you expect only one. I am not "entering entering" a rectangle). 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) isNil] whileFalse: [evt := nil. "for unknown event types" type := evtBuf first. type = EventTypeMouse ifTrue: [recentModifiers := evtBuf sixth. evt := self generateMouseEvent: evtBuf]. type = EventTypeKeyboard ifTrue: [recentModifiers := evtBuf fifth. evt := self generateKeyboardEvent: evtBuf]. type = EventTypeDragDropFiles ifTrue: [evt := self generateDropFilesEvent: evtBuf]. type = EventTypeWindow ifTrue:[evt := self generateWindowEvent: evtBuf]. "All other events are ignored" (type ~= EventTypeDragDropFiles and: [evt isNil]) ifTrue: [^self]. evt isNil ifFalse: ["Finally, handle it" self handleEvent: evt. hadAny := true. "For better user feedback, return immediately after a mouse event has been processed." (evt isMouse and: [evt isMouseWheel not]) 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] Clues? Phil |
Probably a bug. I started to clean this part 4 years ago and my changes got killed by SDL + OS Window and now apparently SDL 20 is not good enough. May be in 3 years from now it will be cleaned, who knows. Stef
-- Using Opera's mail client: http://www.opera.com/mail/ |
There is issue 19388. According to Henrik problem is related to Morphic logic and not to window management. 2017-01-27 8:15 GMT+01:00 stepharong <[hidden email]>:
|
Free forum by Nabble | Edit this page |