RFR: 8345538: Robot.mouseMove doesn't clamp bounds on macOS when trying to move mouse off screen [v3]

Alexey Ivanov aivanov at openjdk.org
Fri Dec 20 19:36:20 UTC 2024


On Fri, 20 Dec 2024 19:30:22 GMT, Harshitha Onkar <honkar at openjdk.org> wrote:

>> Interesting. Does this also happen after the fix with Robot clamping coordinates in shared code?
>
> Yes, I'm running into NPE without as well as with the fix.

Is the current behaviour even a bug? [`Robot.mouseMove`](https://docs.oracle.com/en/java/javase/23/docs/api/java.desktop/java/awt/Robot.html#mouseMove(int,int)) says nothing about invalid coordinates.

> @aivanov-jdk I see your point. But I'm running into NPE at `MouseInfo.getPointerInfo().getLocation()` without the fix as well (dual monitor, extended display setup)

It's probably even better…

> Is it expected of MouseInfo.getPointerInfo() to return null for off-screen coordinates (meaning does it consider it as mouse not available if it is outside the screen devices)?
> 
> PointerInfo has two things associated with it - screen device and a location, so if it is not able to associate the coordinate with any of the screen device (off-screen coordinate) is it suppose to return null in this case?

So, the mouse seems to be positioned outside of the virtual screen bounds. For this reason, `MouseInfo.getPointerInfo()` cannot return anything.

This again raises the question, why does it return a non-null value on macOS?

What do you see on the screen? Does the mouse cursor or its part remain visible on the screen? What happens when you start moving your mouse?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/22781#discussion_r1894317758


More information about the client-libs-dev mailing list