RedPandaCurios
RedPandaCurios

Reputation: 2324

Mac OSX Java: Receive mouse events when not activated

I am writing a Java Swing application that needs to have a window receive mouse movement events when the application is not activated - think of it like a global always-on-top toolbar that animates when the mouse passes over it.

From my research so far, I have seen that the Mac Java JRE only passes events when the application has focus.

It does not appear to be a limitation of the OS, so I was hoping that there was a system property, an application package property or a system call that enabled non-activated event handling. Failing that, some method of globally capturing mouse movement events and passing them in to the Java application.

Thanks for any suggestions...

Edit: One further question: Once mouse move events have been captured, how do you feed them into Swing so that they are treated in the same was as native OS mouse events -- by finding the component under the mouse and sending a MouseEvent to it...

Upvotes: 6

Views: 890

Answers (1)

Martijn Courteaux
Martijn Courteaux

Reputation: 68847

This isn't possible with pure Java.
You will need JNI and to write a global keylistener (or a keyboard hook) in C++ or another language.

Here are some topics about Global KeyListener:

On the last topic: this was a given solution for OSX.

Upvotes: 2

Related Questions