diff --git a/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java b/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java
index 57ed72f9e5ec..d7c9affaeff6 100644
--- a/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java
+++ b/platform/diff-impl/src/com/intellij/diff/util/DiffUtil.java
@@ -187,6 +187,7 @@ public class DiffUtil {
editor.getSettings().setShowIntentionBulb(false);
((EditorMarkupModel)editor.getMarkupModel()).setErrorStripeVisible(true);
editor.getGutterComponentEx().setShowDefaultGutterPopup(false);
+ editor.getGutterComponentEx().setShowRightFreePaintersArea(false);
if (enableFolding) {
setFoldingModelSupport(editor);
diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorGutterComponentEx.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorGutterComponentEx.java
index fa8359127337..393e4761d879 100644
--- a/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorGutterComponentEx.java
+++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorGutterComponentEx.java
@@ -72,4 +72,6 @@ public abstract class EditorGutterComponentEx extends JComponent implements Edit
public abstract void setGutterPopupGroup(@Nullable ActionGroup group);
public abstract void setPaintBackground(boolean value);
+
+ public abstract void setShowRightFreePaintersArea(boolean value);
}
diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java
index 63f76aa7da98..43d91537532b 100644
--- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java
+++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorGutterComponentImpl.java
@@ -103,7 +103,7 @@ import java.util.List;
*
* - Left free painters
* - Icons
- * - GAP_BETWEEN_AREAS
+ * - Debugger additional area
* - Free painters
*
*
@@ -146,6 +146,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse
private TIntObjectHashMap myTextFgColors = new TIntObjectHashMap();
private boolean myPaintBackground = true;
private boolean myLeftFreePaintersAreaShown;
+ private boolean myRightFreePaintersAreaShown = true;
private int myLastNonDumbModeIconAreaWidth = 0;
@SuppressWarnings("unchecked")
@@ -884,8 +885,8 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse
((LineMarkerRendererEx)renderer).getPosition() == LineMarkerRendererEx.Position.LEFT;
int height = endY - startY;
- int w = leftPosition ? FREE_PAINTERS_LEFT_AREA_WIDTH : FREE_PAINTERS_RIGHT_AREA_WIDTH;
- int x = leftPosition ? getLineMarkerAreaOffset() : getLineMarkerFreePaintersAreaOffset() - 1;
+ int w = leftPosition ? getLeftFreePaintersAreaWidth() : getRightFreePaintersAreaWidth();
+ int x = leftPosition ? getLeftFreePaintersAreaOffset() : getLineMarkerFreePaintersAreaOffset() - 1;
return new Rectangle(x, startY, w, height);
}
@@ -1184,9 +1185,8 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse
}
public int getLineMarkerAreaWidth() {
- return isLineMarkersShown() ? ((myLeftFreePaintersAreaShown ? FREE_PAINTERS_LEFT_AREA_WIDTH : 0) +
- myIconsAreaWidth + GAP_BETWEEN_AREAS + FREE_PAINTERS_RIGHT_AREA_WIDTH) :
- 0;
+ return isLineMarkersShown() ? getLeftFreePaintersAreaWidth() + myIconsAreaWidth +
+ getDebuggerAdditionalAreaWidth() + getRightFreePaintersAreaWidth() : 0;
}
public void setLineNumberAreaWidthFunction(@NotNull TIntFunction calculator) {
@@ -1267,12 +1267,24 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse
@Override
public int getIconAreaOffset() {
- return getLineMarkerAreaOffset() + (myLeftFreePaintersAreaShown ? FREE_PAINTERS_LEFT_AREA_WIDTH : 0);
+ return getLineMarkerAreaOffset() + getLeftFreePaintersAreaWidth();
+ }
+
+ public int getLeftFreePaintersAreaOffset() {
+ return getLineMarkerAreaOffset();
}
@Override
public int getLineMarkerFreePaintersAreaOffset() {
- return getIconAreaOffset() + myIconsAreaWidth + GAP_BETWEEN_AREAS;
+ return getIconAreaOffset() + myIconsAreaWidth + getDebuggerAdditionalAreaWidth();
+ }
+
+ public int getLeftFreePaintersAreaWidth() {
+ return myLeftFreePaintersAreaShown ? FREE_PAINTERS_LEFT_AREA_WIDTH : 0;
+ }
+
+ public int getRightFreePaintersAreaWidth() {
+ return myRightFreePaintersAreaShown ? FREE_PAINTERS_RIGHT_AREA_WIDTH : 0;
}
@Override
@@ -1280,6 +1292,10 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse
return myIconsAreaWidth;
}
+ public int getDebuggerAdditionalAreaWidth() {
+ return isRealEditor() ? GAP_BETWEEN_AREAS : 0;
+ }
+
private boolean isMirrored() {
return myEditor.getVerticalScrollbarOrientation() != EditorEx.VERTICAL_SCROLLBAR_RIGHT;
}
@@ -1658,6 +1674,11 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse
myPaintBackground = value;
}
+ @Override
+ public void setShowRightFreePaintersArea(boolean value) {
+ myRightFreePaintersAreaShown = value;
+ }
+
private void invokePopup(MouseEvent e) {
final ActionManager actionManager = ActionManager.getInstance();
if (myEditor.getMouseEventArea(e) == EditorMouseEventArea.ANNOTATIONS_AREA) {