Currently on macOS when mouseMove is given an offscreen coordinate to move the 
mouse to, mouseMove will physically clamp to the edge of the screen, but if you 
try to grab the mouse location immediately after by using 
MouseInfo.getPointerInfo().getLocation() you will get the value of the 
offscreen point.

Windows and linux do this clamping and coordinate handling for us, but new 
distributions may not necessarily handle clamping the same way, so Robot should 
be checking for clamping rather than delegating it to native.

This fix updates shared code to cache the screen bounds and adds a check to not 
exceed the bounds in mouseMove. The caching is done in the Robot constructor, 
so if the screen bounds changes the constructor must be called again to update 
to the new bounds.

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

Commit messages:
 - init commit

Changes: https://git.openjdk.org/jdk/pull/22781/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=22781&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8345538
  Stats: 5 lines in 1 file changed: 4 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/22781.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/22781/head:pull/22781

PR: https://git.openjdk.org/jdk/pull/22781

Reply via email to