From ebe6949d6e38dbb1b7d11c8de4f44c452aecc208 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Fri, 6 Mar 2015 21:15:18 +0300 Subject: [PATCH] diff: better painting of separators * fix connection with gutter in mirrored editor - adjust phase of line (connection is broken, if editor is scrolled - but we can't do anything about it - it's better to move line in sync with text) --- .../diff/util/DiffLineSeparatorRenderer.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/platform/diff-impl/src/com/intellij/diff/util/DiffLineSeparatorRenderer.java b/platform/diff-impl/src/com/intellij/diff/util/DiffLineSeparatorRenderer.java index 34103e78f054..d8ac139e847e 100644 --- a/platform/diff-impl/src/com/intellij/diff/util/DiffLineSeparatorRenderer.java +++ b/platform/diff-impl/src/com/intellij/diff/util/DiffLineSeparatorRenderer.java @@ -115,8 +115,19 @@ public class DiffLineSeparatorRenderer implements LineMarkerRenderer, LineSepara final int gutterWidth = ((EditorEx)myEditor).getGutterComponentEx().getWidth(); int lineHeight = myEditor.getLineHeight(); + int interval = 8; - draw(g, -gutterWidth, y, lineHeight); + int shiftX = -interval; // skip zero index painting + if (((EditorEx)myEditor).getVerticalScrollbarOrientation() == EditorEx.VERTICAL_SCROLLBAR_LEFT) { + int contentWidth = ((EditorEx)myEditor).getScrollPane().getViewport().getWidth(); + shiftX += contentWidth % interval - interval; + shiftX += gutterWidth % interval - interval; + } + else { + shiftX += -gutterWidth % interval - interval; + } + + draw(g, shiftX, y, lineHeight); } private static void draw(@NotNull Graphics g,