diff --git a/platform/platform-impl/src/com/intellij/ui/content/impl/ContentImpl.java b/platform/platform-impl/src/com/intellij/ui/content/impl/ContentImpl.java index fdf8544c8c67..f88f1e3af082 100644 --- a/platform/platform-impl/src/com/intellij/ui/content/impl/ContentImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/content/impl/ContentImpl.java @@ -13,6 +13,7 @@ import com.intellij.ui.content.AlertIcon; import com.intellij.ui.content.Content; import com.intellij.ui.content.ContentManager; import com.intellij.util.IconUtil; +import com.intellij.util.ObjectUtils; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -72,7 +73,11 @@ public class ContentImpl extends UserDataHolderBase implements Content { @Override public JComponent getPreferredFocusableComponent() { - return myFocusRequest == null ? myComponent : myFocusRequest.compute(); + if (myFocusRequest != null) return myFocusRequest.compute(); + if (myComponent == null) return null; + Container traversalRoot = myComponent.isFocusCycleRoot() ? myComponent : myComponent.getFocusCycleRootAncestor(); + if (traversalRoot == null) return null; + return ObjectUtils.tryCast(traversalRoot.getFocusTraversalPolicy().getDefaultComponent(myComponent), JComponent.class); } @Override