diff --git a/platform/platform-impl/src/com/intellij/openapi/diff/impl/incrementalMerge/ChangeList.java b/platform/platform-impl/src/com/intellij/openapi/diff/impl/incrementalMerge/ChangeList.java index b59078f233a9..a0d2b9638f47 100644 --- a/platform/platform-impl/src/com/intellij/openapi/diff/impl/incrementalMerge/ChangeList.java +++ b/platform/platform-impl/src/com/intellij/openapi/diff/impl/incrementalMerge/ChangeList.java @@ -200,12 +200,20 @@ public class ChangeList { return myChanges.size(); } + @NotNull public LineBlocks getLineBlocks() { ArrayList changes = new ArrayList(myChanges); //changes.addAll(myAppliedChanges); return LineBlocks.fromChanges(changes); } + @NotNull + public LineBlocks getAllLineBlocks() { + ArrayList changes = new ArrayList(myChanges); + changes.addAll(myAppliedChanges); + return LineBlocks.fromChanges(changes); + } + public void remove(@NotNull Change change) { if (change.getType().isApplied()) { LOG.assertTrue(myAppliedChanges.remove(change), change); diff --git a/platform/platform-impl/src/com/intellij/openapi/diff/impl/incrementalMerge/ui/MergePanel2.java b/platform/platform-impl/src/com/intellij/openapi/diff/impl/incrementalMerge/ui/MergePanel2.java index cbad541fe129..34e8ad3a74cf 100644 --- a/platform/platform-impl/src/com/intellij/openapi/diff/impl/incrementalMerge/ui/MergePanel2.java +++ b/platform/platform-impl/src/com/intellij/openapi/diff/impl/incrementalMerge/ui/MergePanel2.java @@ -238,9 +238,10 @@ public class MergePanel2 implements DiffViewer { myMergeList.setMarkups(left, base, right); EditingSides[] sides = {getFirstEditingSide(), getSecondEditingSide()}; + EditingSides[] sidesWithApplied = {getFirstEditingSide(true), getSecondEditingSide(true)}; myScrollSupport.install(sides); for (int i = 0; i < myDividers.length; i++) { - myDividers[i].listenEditors(sides[i]); + myDividers[i].listenEditors(sidesWithApplied[i]); } if (myScrollToFirstDiff) { myPanel.requestScrollEditors(); @@ -256,12 +257,22 @@ public class MergePanel2 implements DiffViewer { @NotNull EditingSides getFirstEditingSide() { - return new MyEditingSides(FragmentSide.SIDE1); + return getFirstEditingSide(false); + } + + @NotNull + EditingSides getFirstEditingSide(boolean appliedLineBlocks) { + return new MyEditingSides(FragmentSide.SIDE1, appliedLineBlocks); } @NotNull EditingSides getSecondEditingSide() { - return new MyEditingSides(FragmentSide.SIDE2); + return getSecondEditingSide(false); + } + + @NotNull + EditingSides getSecondEditingSide(boolean appliedLineBlocks) { + return new MyEditingSides(FragmentSide.SIDE2, appliedLineBlocks); } public void setAutoScrollEnabled(boolean enabled) { @@ -438,9 +449,11 @@ public class MergePanel2 implements DiffViewer { private class MyEditingSides implements EditingSides { private final FragmentSide mySide; + private final boolean myAppliedLineBlocks; - private MyEditingSides(FragmentSide side) { + private MyEditingSides(FragmentSide side, boolean appliedLineBlocks) { mySide = side; + myAppliedLineBlocks = appliedLineBlocks; } @Nullable @@ -449,7 +462,11 @@ public class MergePanel2 implements DiffViewer { } public LineBlocks getLineBlocks() { - return myMergeList.getChanges(mySide).getLineBlocks(); + if (myAppliedLineBlocks) { + return myMergeList.getChanges(mySide).getAllLineBlocks(); + } else { + return myMergeList.getChanges(mySide).getLineBlocks(); + } } }