Injects a MouseRelease event at the start of the QPA event queue, and turns the current release event into a move event, which is then processed.
- If eventloop/processevent is run from MouseMove event, will deliver MouseRelease before any new mouse events.
- Messes with QPA queue from Gui, bad
- If eventloop/processevent is run from MouseMove event, will return to user code for MouseMove after corresponding MouseEnd has been delivered, and then return to Gui code for the same MouseMove, which may not be happy that the End was delivered.
- Stays within Gui for delivery (alghtough it does create QWindowSystemInterfacePrivate::MouseEvent instead of QMouseEvent)
- Keeps order of events for the single source event that trigggered move + release
- If eventloop/processevent is run from MouseMove event, will not deliver MouseEnd for the current event, and may start delivering new mouse events, eg: Press[A], Move[A], Move[A], Press[B], Move[B], Move[B], Release[B], Release[A]
The release of A should happen before Press of B.