From 92db57255dadc92cae7fe1ec239f3520d12fac0d Mon Sep 17 00:00:00 2001 From: Andrei Dmitriev Date: Wed, 1 Dec 2010 14:43:56 +0300 Subject: [PATCH] 6709453: (dav)Screen flickers when a JFrame switches to fullscreen mode Reviewed-by: art, dcherepanov --- .../windows/classes/sun/awt/Win32GraphicsDevice.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/jdk/src/windows/classes/sun/awt/Win32GraphicsDevice.java b/jdk/src/windows/classes/sun/awt/Win32GraphicsDevice.java index 5663a9ff7f3..14b93bd0e2b 100644 --- a/jdk/src/windows/classes/sun/awt/Win32GraphicsDevice.java +++ b/jdk/src/windows/classes/sun/awt/Win32GraphicsDevice.java @@ -30,6 +30,7 @@ import java.awt.GraphicsDevice; import java.awt.GraphicsConfiguration; import java.awt.GraphicsEnvironment; import java.awt.DisplayMode; +import java.awt.EventQueue; import java.awt.Frame; import java.awt.Rectangle; import java.awt.Window; @@ -610,11 +611,18 @@ public class Win32GraphicsDevice extends GraphicsDevice implements * * @param w full-screen window */ - protected void addFSWindowListener(Window w) { + protected void addFSWindowListener(final Window w) { // Note: even though we create a listener for Window instances of // fs windows they will not receive window events. fsWindowListener = new Win32FSWindowAdapter(this); - w.addWindowListener(fsWindowListener); + + // Fix for 6709453. Using invokeLater to avoid listening + // for the events already posted to the queue. + EventQueue.invokeLater(new Runnable() { + public void run() { + w.addWindowListener(fsWindowListener); + } + }); } /**