From dd738292693165f51165b6bf9b8d72d302fb0fef Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Tue, 10 Apr 2012 14:07:11 +0200 Subject: [PATCH] IDEA-84255 TComp eats focus --- .../openapi/fileEditor/impl/EditorWindow.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorWindow.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorWindow.java index f635b72d0156..7e6801428833 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorWindow.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/EditorWindow.java @@ -34,6 +34,7 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Splitter; import com.intellij.openapi.util.*; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.openapi.wm.IdeFocusManager; import com.intellij.openapi.wm.ToolWindowManager; import com.intellij.ui.LayeredIcon; import com.intellij.util.IconUtil; @@ -45,6 +46,8 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import javax.swing.border.Border; import java.awt.*; +import java.awt.event.FocusAdapter; +import java.awt.event.FocusEvent; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -495,6 +498,15 @@ public class EditorWindow { myEditor = editor; myWindow = window; add(editor.getComponent(), BorderLayout.CENTER); + addFocusListener(new FocusAdapter() { + @Override + public void focusGained(FocusEvent e) { + final JComponent focus = myEditor.getSelectedEditorWithProvider().getFirst().getPreferredFocusedComponent(); + if (focus != null) { + IdeFocusManager.getGlobalInstance().requestFocus(focus, true); + } + } + }); } @Override