From 049cea0c10919312ff18e2ffc9f97df5a935d018 Mon Sep 17 00:00:00 2001 From: Kirill Kirichenko Date: Tue, 9 Oct 2018 14:50:43 +0300 Subject: [PATCH] Fix leak in EditorsSplitters --- .../openapi/fileEditor/impl/EditorsSplitters.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java index e1dec85a48e0..94c7123c9f5d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorsSplitters.java @@ -50,6 +50,7 @@ import java.awt.*; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.event.ContainerEvent; +import java.beans.PropertyChangeListener; import java.io.File; import java.util.List; import java.util.*; @@ -76,12 +77,15 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener super(new BorderLayout()); setBackground(JBColor.namedColor("Editor.background", IdeBackgroundUtil.getIdeBackgroundColor())); - UIManager.getDefaults().addPropertyChangeListener(e -> { + PropertyChangeListener l = e -> { String propName = e.getPropertyName(); if ("Editor.background".equals(propName) || "Editor.foreground".equals(propName) || "Editor.shortcutForeground".equals(propName)) { repaint(); } - }); + }; + + UIManager.getDefaults().addPropertyChangeListener(l); + Disposer.register(manager.getProject(), () -> UIManager.getDefaults().removePropertyChangeListener(l)); myManager = manager; myFocusWatcher = new MyFocusWatcher();