diff --git a/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffPanelImpl.java b/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffPanelImpl.java index f3a85f692644..c4c6431c229b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffPanelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/diff/impl/DiffPanelImpl.java @@ -329,6 +329,9 @@ public class DiffPanelImpl implements DiffPanelEx, ContentChangeListener, TwoSid myDataProvider.putData(myDiffRequest.getGenericData()); IdeFocusManager fm = IdeFocusManager.getInstance(myProject); + boolean isEditor1Focused = getEditor1() != null + && fm.getFocusedDescendantFor(getEditor1().getComponent()) != null; + boolean isEditor2Focused = myData.getContent2() != null && getEditor2() != null && fm.getFocusedDescendantFor(getEditor2().getComponent()) != null; @@ -348,7 +351,9 @@ public class DiffPanelImpl implements DiffPanelEx, ContentChangeListener, TwoSid myPanel.setBottomComponent(newBottomComponent); - fm.requestFocus(isEditor2Focused ? getEditor2().getContentComponent() : getEditor1().getContentComponent(), true); + if (isEditor1Focused || isEditor2Focused) { + fm.requestFocus(isEditor2Focused ? getEditor2().getContentComponent() : getEditor1().getContentComponent(), true); + } myPanel.requestScrollEditors(); }