ui: fix editor border for tabless mode

This commit is contained in:
Alexey Pegov
2011-12-05 18:33:18 +04:00
parent bc0ad5a1e7
commit 17c439cff0
@@ -53,6 +53,7 @@ import com.intellij.openapi.editor.impl.softwrap.SoftWrapHelper;
import com.intellij.openapi.editor.markup.*;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.fileEditor.ex.IdeDocumentHistory;
import com.intellij.openapi.fileEditor.impl.EditorsSplitters;
import com.intellij.openapi.options.FontSize;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.project.Project;
@@ -65,6 +66,7 @@ import com.intellij.openapi.wm.IdeFocusManager;
import com.intellij.openapi.wm.IdeGlassPane;
import com.intellij.ui.GuiUtils;
import com.intellij.ui.LightweightHint;
import com.intellij.ui.SideBorder;
import com.intellij.ui.components.JBScrollBar;
import com.intellij.ui.components.JBScrollPane;
import com.intellij.util.Alarm;
@@ -6119,6 +6121,9 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
@Override
public void setupCorners() {
super.setupCorners();
setBorder(new TablessBorder());
setCorner(getVerticalScrollbarOrientation() == EditorEx.VERTICAL_SCROLLBAR_LEFT ?
LOWER_RIGHT_CORNER :
LOWER_LEFT_CORNER, new JPanel() {
@@ -6146,6 +6151,38 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
});
}
}
private static class TablessBorder extends SideBorder {
private TablessBorder() {
super(UIUtil.getBorderColor(), SideBorder.ALL);
}
@Override
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
if (c instanceof JComponent) {
Insets insets = ((JComponent)c).getInsets();
if (insets.left > 0) {
super.paintBorder(c, g, x, y, width, height);
} else {
g.setColor(UIUtil.getPanelBackground());
g.drawLine(x, y, x + width, y);
g.setColor(new Color(0, 0, 0, 90));
g.drawLine(x, y, x + width, y);
}
}
}
@Override
public Insets getBorderInsets(Component c) {
Container splitters = SwingUtilities.getAncestorOfClass(EditorsSplitters.class, c);
return splitters == null ? super.getBorderInsets(c) : new Insets(1, 0, 0, 0);
}
@Override
public boolean isBorderOpaque() {
return true;
}
}
private class MyHeaderPanel extends JPanel {
private int myOldHeight = 0;