IDEA-137936 diff: reduce editor gutter width

* do not paint debugger-specific gap area
* do not paint right free painters area
This commit is contained in:
Aleksey Pivovarov
2015-12-29 14:35:49 +03:00
parent 3bfa859a44
commit a4bc67891b
3 changed files with 32 additions and 8 deletions
@@ -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);
@@ -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);
}
@@ -103,7 +103,7 @@ import java.util.List;
* <ul>
* <li>Left free painters</li>
* <li>Icons</li>
* <li>GAP_BETWEEN_AREAS</li>
* <li>Debugger additional area</li>
* <li>Free painters</li>
* </ul>
* </li>
@@ -146,6 +146,7 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse
private TIntObjectHashMap<Color> myTextFgColors = new TIntObjectHashMap<Color>();
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) {