I am calling ServiceUI.printDialog() to bring up the cross platform print dialog. The locations (x,y) are specified in such a way that it would make the print dialog go out of the screen. When I run this on a multi-monitor linux system having a virtual desktop, the print dialog is positioned exactly in between the 2 monitors, That is, half of it is shown on monitor1 and another half is shown on monitor2. It makes sense to display the dialog at the centre of the screen for a single monitor system when coords are invalid but it does not look good in case of multi-monitor systems. Either it can be made visible in the center of the first screen or the second one.
This is reproducible only on multi-screen systems running Linux. This is reproducible only on the PIT build. On earlier builds, the dialog appears at 0,0 location. Multi-Screen is configured using Xinerama, Matrox Millenium G450 DualHead - a video board having 2 outputs. This is tested on Linux RH 9. It has a virtual desktop where the entire desktop spans 2 monitors and you can move the windows from one screen to another.
I have attached a testcase. Execute the test on the above said configuration. If the dialog appears in between the 2 monitors, the bug is reproduced.
I think this is caused by the bug fix: 4929299: Service Dialog is not positioned properly if the coords are invalid, on win32.
Here is the bounds of the 2 monitors:
graphics device  = X11GraphicsDevice[screen=0];
bounds = java.awt.Rectangle[x=0,y=0,width=1152,height=864]
graphics device  = X11GraphicsDevice[screen=1];
bounds = java.awt.Rectangle[x=1152,y=0,width=1152,height=864]