-
Bug
-
Resolution: Fixed
-
P3
-
1.4.0
-
b79
-
x86
-
linux_redhat_9.0
-
Verified
I have a multi-monitor setup with 2 screens connected to the same video card - Matrox DualHead G450 on a linux system (RH 9). A virtual desktop has been configured using Xinerama where the bounds of the virtual screen spans 2 monitors. I am able to drag windows across monitors. I am using robot to click one of the UI components on the secondary screen. I used the default Robot constructor. When I try to move the mouse to the second monitor, it does not work and mouse still remains at the periphery of the primary screen. but I am able to move the mouse manually across screens.
So I am unable to use Robot to click on anything that is located on the secondary monitor. I went through the API specification for Robot and it recommends the developer to use Robot(gd) constructor for multi-screen env having 2 independent screens but does not specify anything for multi-screen ev having a virtual screen. The spec must also be enhanced to elaborate this. It does list out the multi-screen options but does not say which constructor to use for a virtual screen setup.
This is reproducible on all releases on Linux RH 9 with Xinerama. This is not reproducible on Win-XP having the same virtual screen setup.
I have attached a sample test. Execute the sample test. You would see a frame with a button. Move the frame to the secondary monitor and click on the button. You would see mouse being moved from screen1 to screen2. If the mouse cursor is not seen on the secondary monitor, the bug is reproduced.
Another issue I have noticed is, I have set a different cursor to button. When the mouse is moved by Robot within primary screen the cursor changes momentarily (reflects component's cursor) within the primary screen itself when it has not reached the actual component on the secondary screen. I could also see some mouse moved and mouse entered/exited events being triggered when mouse has not reached the actual component.
So I am unable to use Robot to click on anything that is located on the secondary monitor. I went through the API specification for Robot and it recommends the developer to use Robot(gd) constructor for multi-screen env having 2 independent screens but does not specify anything for multi-screen ev having a virtual screen. The spec must also be enhanced to elaborate this. It does list out the multi-screen options but does not say which constructor to use for a virtual screen setup.
This is reproducible on all releases on Linux RH 9 with Xinerama. This is not reproducible on Win-XP having the same virtual screen setup.
I have attached a sample test. Execute the sample test. You would see a frame with a button. Move the frame to the secondary monitor and click on the button. You would see mouse being moved from screen1 to screen2. If the mouse cursor is not seen on the secondary monitor, the bug is reproduced.
Another issue I have noticed is, I have set a different cursor to button. When the mouse is moved by Robot within primary screen the cursor changes momentarily (reflects component's cursor) within the primary screen itself when it has not reached the actual component on the secondary screen. I could also see some mouse moved and mouse entered/exited events being triggered when mouse has not reached the actual component.
- relates to
-
JDK-5097801 Spurious mouse events are triggered on multi-mon - virtual screen linux setup
- Closed
-
JDK-6190081 Dragging a frame using Robot is not working properly on Multi-mon setup, Solaris + xinerama
- Closed
-
JDK-6287244 Linux/Solaris robot should be rewritten
- Resolved