diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.java index 51fba732facd..b00232e37d6a 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/LafManagerImpl.java @@ -72,10 +72,10 @@ import javax.swing.plaf.synth.SynthStyle; import javax.swing.plaf.synth.SynthStyleFactory; import javax.swing.text.DefaultEditorKit; import java.awt.*; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.lang.reflect.InvocationTargetException; @@ -888,10 +888,11 @@ public final class LafManagerImpl extends LafManager implements ApplicationCompo if (window instanceof RootPaneContainer && window != UIUtil.getWindow(owner) && ((RootPaneContainer)window).getRootPane().getClientProperty(cleanupKey) == null) { ((RootPaneContainer)window).getRootPane().putClientProperty(cleanupKey, cleanupKey); - window.addWindowListener(new WindowAdapter() { + window.addComponentListener(new ComponentAdapter() { @Override - public void windowClosed(WindowEvent e) { - window.removeWindowListener(this); + public void componentHidden(ComponentEvent e) { + window.removeComponentListener(this); + ((RootPaneContainer)window).getRootPane().putClientProperty(cleanupKey, null); DialogWrapper.cleanupRootPane(((RootPaneContainer)window).getRootPane()); DialogWrapper.cleanupWindowListeners(window); }