-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Description
With JME3.7 we can now embed OpenGL3 canvas in a Swing window. I have noticed an issue with the mouse with this configuration.
Steps to reproduce:
- Use JME 3.7.0-stable
- Be running OpenGL3
- Have a jme canvas embedded in a swing window
- Listen for jme mouse events using InputManager.addListener(ActionListener)
- Left click on the canvas
- In the ActionListener, get the position of the mouse using InputManager.getCursorPosition()
Observed
The mouseDown (i.e. keyPressed=true) will have the correct mouse position.
By the time the mouseUp event is processed (i.e. keyPressed=false), the position of the mouse has been moved to the centre of the canvas.
- The mouse is physically displayed in the centre of the canvas
- InputManager.getCursorPosition() will return a mouse position in the centre of the canvas
Notes:
- This does not happen if you are not using Swing
- This does not happen in OpenGL2 with Swing
- Seen on both Windows 10 and current Debian linux stable (12.7)
A workaround (more a hack) is to
- Store the location of the mousedown event
- In the mouseup event, use java.awt.Robot to move the mouse back to where the mousedown event happened.
Metadata
Metadata
Assignees
Labels
No labels