From alexandr.scherbatiy at oracle.com Fri Dec 5 08:01:02 2014 From: alexandr.scherbatiy at oracle.com (Alexander Scherbatiy) Date: Fri, 05 Dec 2014 11:01:02 +0300 Subject: Odd behavior with transparent window getting shadow after toggling visibility In-Reply-To: References: Message-ID: <5481663E.9060606@oracle.com> On 11/25/2014 10:47 PM, AJ Gregory wrote: > If you run the class below on a RETINA MacBook Pro (OSX 10.10) the first > time you see the JWindow it's a white circle with NO shadow, but then later > when it calls setVisible(false) and setVisible(true) the circle has a > shadow when it's made visible again which isn't right... > > I can't reproduce on non-retina (OSX 10.9) so wondering if it's a retina > only issue? I can reproduce it on non-retina OSX 10.10 and it is not reproduced on my retina OSX 10.9. It seems that the problem relates to the OSX 10.10. Could you file an issue on it: http://bugs.java.com Thanks, Alexandr. > > Same behavior for both Java 7u71 and 8u25... > > Anybody else experience this and have a work around? > > Seems like a bug for sure unless I'm missing something... > > import javax.swing.*; > import java.awt.*; > import java.awt.event.ActionEvent; > import java.awt.event.ActionListener; > > public class TestMacShadow { > public static void main(String[] args) { > EventQueue.invokeLater(new Runnable() { > public void run() { > final JWindow window = new JWindow() { > public void paint(Graphics g) { > g.setColor(Color.WHITE); > g.fillOval(0, 0, getWidth(), getHeight()); > } > }; > > window.setBackground(new Color(0, 0, 0, 0)); > window.setLocation(new Point(100, 100)); > window.setSize(new Dimension(300, 300)); > window.setAlwaysOnTop(true); > window.setVisible(true); > > Timer t = new Timer(2000, new ActionListener() { > public void actionPerformed(ActionEvent actionEvent) { > window.setVisible(!window.isVisible()); > } > }); > > t.setRepeats(true); > t.start(); > } > }); > } > }