<AWT Dev> Unwanted MOUSE_MOVED break dispatching MOUSE_RELEASED to the right component
Weidemann, Matthias
matthias.weidemann at sap.com
Thu Jan 4 12:56:00 UTC 2018
Hello everyone,
we found a rare occurrence of a bug in JDK1.8 and onwards, might also occur earlier but we didn’t check for that.
In some instances MOUSE_MOVED events occur between a MOUSE_PRESSED and a MOUSE_RELEASED. In Container.java on MOUSE_PRESSED the component is remembered in an instance variable to send a corresponding MOUSE_RELEASED to it.
The same instance variable is used for the MOUSE_MOVED Event, so if there are MOUSE_MOVED Events between a MOUSE_PRESSED and MOUSE_RELEASED the corresponding MOUSE_RELEASE will be reported to the "wrong" component.
I attached a simple example to replicate the error.
I included hardware specifications, because the occurrence fluctuates with the hardware used. We got the best results to reproduce with the Macbook and the magic mouse shown below. With a trackpad it is almost impossible to replicate.
[cid:image001.jpg at 01D38563.C0581190][cid:image002.jpg at 01D38563.C0581190][cid:image003.jpg at 01D38563.C0581190]
How to: Move the mouse in the blue rectangle VERY FAST from left to right or vice versa. Release the mousebutton near the end of the drag, while you are still in motion.
We are using a workaround for this, the same custom queue built into the example. If we are between MOUSE_PRESSED and MOUSE_RELEASED we do not dispatch MOUSE_MOVED Events.
We would still like to see this bug fixed or at least have different instance variables for MOUSE_PRESSED and MOUSE_MOVED so we get the MOUSE_RELEASE on the right component.
Kind Regards,
Matthias Weidemann
Matthias Weidemann
Software Developer, PI Technology UxP UI P&S (SE) Supp
SAP SE, Opelstr. 6, 68789 St. Leon - Rot, Germany
T +49 6227 7-45771 , E matthias.weidemann at sap.com
Please consider the impact on the environment before printing this e-mail.
Pflichtangaben/Mandatory Disclosure Statement:
http://www.sap.com/company/legal/impressum.epx/<http://www.sap.com/company/legal/impressum.epx>
Diese E-Mail kann Betriebs- oder Geschäftsgeheimnisse oder sonstige vertrauliche Informationen enthalten. Sollten Sie diese E-Mail irrtümlich erhalten haben, ist Ihnen eine Kenntnisnahme des Inhalts, eine Vervielfältigung oder Weitergabe der E-Mail ausdrücklich untersagt. Bitte benachrichtigen Sie uns und vernichten Sie die empfangene E-Mail.
Vielen Dank.
This e-mail may contain trade secrets or privileged, undisclosed, or otherwise confidential information. If you have received this e-mail in error, you are hereby notified that any review, copying, or distribution of it is strictly prohibited. Please inform us immediately and destroy the original transmittal.
Thank you for your cooperation
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20180104/09ea36b9/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 80020 bytes
Desc: image001.jpg
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20180104/09ea36b9/image001-0001.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.jpg
Type: image/jpeg
Size: 79181 bytes
Desc: image002.jpg
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20180104/09ea36b9/image002-0001.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image003.jpg
Type: image/jpeg
Size: 78332 bytes
Desc: image003.jpg
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20180104/09ea36b9/image003-0001.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: MouseMotionBugGui.java
Type: application/octet-stream
Size: 4300 bytes
Desc: MouseMotionBugGui.java
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20180104/09ea36b9/MouseMotionBugGui-0001.java>
More information about the awt-dev
mailing list