On Wed, 5 Jul 2023 03:07:01 GMT, Prasanta Sadhukhan <psadhuk...@openjdk.org> 
wrote:

> If an EventHandler or EventFilter for a mouse button is attached to a scene 
> within a JFXPanel and the **primary mouse button** is held, any mouse button 
> click will create an event such that event.getButton().name() wrongly returns 
> PRIMARY, even if the secondary or middle button was clicked. 
> This is because `SwingEvents.mouseButtonToEmbedMouseButton()` overwrites the 
> button name after checking the modifier value. 
> For mouse click with primary button  `mouseButtonToEmbedMouseButton` is first 
> called with `BUTTON1 `and modifier `BUTTON1_DOWN_MASK `(ie 1024) and then 
> when secondary button(ie right button is clicked) 
> `mouseButtonToEmbedMouseButton` is called with `BUTTON3 `and modifier 
> `BUTTON3_DOWN_MASK | BUTTON1_DOWN_MASK` (ie 5120) 
> and when secondary button is released, `mouseButtonToEmbedMouseButton` is 
> again called with `BUTTON3 `but with modifier `BUTTON1_DOWN_MASK `(1024) 
> resulting in button being declared PRIMARY.
> 
> Fix is to make sure not to overwrite button name if a button name is already 
> assigned.

This pull request has now been integrated.

Changeset: 8635f81f
Author:    Prasanta Sadhukhan <psadhuk...@openjdk.org>
URL:       
https://git.openjdk.org/jfx/commit/8635f81fc2451a206c018ad024fc1553a53d659f
Stats:     13 lines in 1 file changed: 2 ins; 0 del; 11 mod

8242419: JFXPanel: MouseEvent always reports that Primary button changed state 
if held

Reviewed-by: angorya

-------------

PR: https://git.openjdk.org/jfx/pull/1170

Reply via email to