diff --git a/platform/diff-impl/src/com/intellij/diff/tools/util/KeyboardModifierListener.java b/platform/diff-impl/src/com/intellij/diff/tools/util/KeyboardModifierListener.java index 2b3959a58f6f..01310a408bda 100644 --- a/platform/diff-impl/src/com/intellij/diff/tools/util/KeyboardModifierListener.java +++ b/platform/diff-impl/src/com/intellij/diff/tools/util/KeyboardModifierListener.java @@ -28,7 +28,7 @@ import java.awt.event.KeyEvent; import java.awt.event.WindowEvent; import java.awt.event.WindowFocusListener; -public class KeyboardModifierListener { +public class KeyboardModifierListener implements Disposable { private boolean myShiftPressed; private boolean myCtrlPressed; private boolean myAltPressed; @@ -50,12 +50,7 @@ public class KeyboardModifierListener { public void init(@NotNull JComponent component, @NotNull Disposable disposable) { assert myWindow == null; - Disposer.register(disposable, new Disposable() { - @Override - public void dispose() { - destroy(); - } - }); + Disposer.register(disposable, this); // we can use KeyListener on Editors, but Ctrl+Click will not work with focus in other place. // ex: commit dialog with focus in commit message @@ -75,7 +70,8 @@ public class KeyboardModifierListener { } } - public void destroy() { + @Override + public void dispose() { if (myWindow != null) { myWindow.removeWindowFocusListener(myWindowFocusListener); myWindow = null;