--- old/src/java.desktop/windows/classes/sun/awt/windows/WTrayIconPeer.java 2016-06-14 10:37:56.025008000 +0530 +++ new/src/java.desktop/windows/classes/sun/awt/windows/WTrayIconPeer.java 2016-06-14 10:37:55.684838000 +0530 @@ -28,10 +28,16 @@ import java.awt.Graphics2D; import java.awt.AWTEvent; import java.awt.Frame; +import java.awt.GraphicsConfiguration; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; import java.awt.PopupMenu; import java.awt.Point; import java.awt.TrayIcon; import java.awt.Image; +import java.awt.Insets; +import java.awt.Toolkit; +import java.awt.geom.AffineTransform; import java.awt.peer.TrayIconPeer; import java.awt.image.*; @@ -130,7 +136,26 @@ if (gr != null) { try { gr.setPaintMode(); - + GraphicsEnvironment ge = GraphicsEnvironment. + getLocalGraphicsEnvironment(); + Toolkit toolkit = Toolkit.getDefaultToolkit(); + GraphicsDevice[] gds = ge.getScreenDevices(); + GraphicsDevice device = ge.getDefaultScreenDevice(); + Insets in = new Insets(0, 0, 0, 0); + for (GraphicsDevice gd : gds) { + GraphicsConfiguration gc = gd.getDefaultConfiguration(); + Insets insets = toolkit.getScreenInsets(gc); + if (insets.bottom > in.bottom + || insets.top > in.top + || insets.left > in.left + || insets.right > in.right) { + in = insets; + device = gd; + } + } + AffineTransform tx = device.getDefaultConfiguration(). + getDefaultTransform(); + gr.setTransform(tx); gr.drawImage(image, 0, 0, (autosize ? TRAY_ICON_WIDTH : image.getWidth(observer)), (autosize ? TRAY_ICON_HEIGHT : image.getHeight(observer)), observer);