diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java index 9d80e5a5746c..7ad38981e81e 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/IdeFrameImpl.java @@ -86,6 +86,7 @@ public class IdeFrameImpl extends JFrame implements IdeFrameEx, DataProvider { private IdeRootPane myRootPane; private final BalloonLayout myBalloonLayout; private IdeFrameDecorator myFrameDecorator; + private PropertyChangeListener myWindowsBorderUpdater = null; private boolean myRestoreFullScreen; public IdeFrameImpl(ApplicationInfoEx applicationInfoEx, @@ -127,13 +128,15 @@ public class IdeFrameImpl extends JFrame implements IdeFrameEx, DataProvider { updateBorder(); } }); - - Toolkit.getDefaultToolkit().addPropertyChangeListener("win.xpstyle.themeActive", new PropertyChangeListener() { - @Override - public void propertyChange(@NotNull PropertyChangeEvent evt) { - updateBorder(); - } - }); + if (SystemInfo.isWindows) { + myWindowsBorderUpdater = new PropertyChangeListener() { + @Override + public void propertyChange(@NotNull PropertyChangeEvent evt) { + updateBorder(); + } + }; + Toolkit.getDefaultToolkit().addPropertyChangeListener("win.xpstyle.themeActive", myWindowsBorderUpdater); + } IdeMenuBar.installAppMenuIfNeeded(this); @@ -472,6 +475,9 @@ public class IdeFrameImpl extends JFrame implements IdeFrameEx, DataProvider { Disposer.dispose(myFrameDecorator); myFrameDecorator = null; } + if (myWindowsBorderUpdater != null) { + Toolkit.getDefaultToolkit().removePropertyChangeListener("win.xpstyle.themeActive", myWindowsBorderUpdater); + } FocusTrackback.release(this);