From f550f5470dabc0c3b166ee089646ef6fc349f138 Mon Sep 17 00:00:00 2001 From: Nicolae Vartolomei Date: Sun, 15 Jul 2018 00:29:31 +0100 Subject: [PATCH 1/2] IDEA-194379: Always render error stripes panel Prior to this, `editor.xcode.like.scrollbar` would render a black rectangle instead of error stripes. This change makes error stripes panel ignore registry option. It is always rendered and responds to events. --- .../openapi/editor/impl/EditorMarkupModelImpl.java | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java index 7d2c601e822a7..23567ef998a6b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorMarkupModelImpl.java @@ -17,7 +17,6 @@ import com.intellij.openapi.editor.colors.EditorFontType; import com.intellij.openapi.editor.ex.*; import com.intellij.openapi.editor.ex.util.EditorUIUtil; -import com.intellij.openapi.editor.ex.util.EditorUtil; import com.intellij.openapi.editor.markup.ErrorStripeRenderer; import com.intellij.openapi.editor.markup.RangeHighlighter; import com.intellij.openapi.fileEditor.impl.EditorWindowHolder; @@ -489,11 +488,6 @@ protected JButton createDecreaseButton(int orientation) { return myErrorStripeButton; } - @Override - protected boolean isMacScrollbarHiddenAndXcodeLikeScrollbar() { - return super.isMacScrollbarHiddenAndXcodeLikeScrollbar() && EditorUtil.isRealFileEditor(myEditor); - } - @Override public boolean alwaysShowTrack() { if (scrollbar.getOrientation() == Adjustable.VERTICAL) return !transparent(); @@ -581,8 +575,7 @@ protected boolean isDark() { @Override protected boolean alwaysPaintThumb() { - if (scrollbar.getOrientation() == Adjustable.VERTICAL) return !(xcodeLikeScrollbar() && EditorUtil.isRealFileEditor(myEditor)); - return super.alwaysPaintThumb(); + return true; } @Override @@ -613,10 +606,6 @@ protected void paintTrack(@NotNull Graphics g, @NotNull JComponent c, @NotNull R @Override protected void doPaintTrack(@NotNull Graphics g, @NotNull JComponent c, @NotNull Rectangle bounds) { - if (isMacScrollbarHiddenAndXcodeLikeScrollbar()) { - paintTrackBasement(g, bounds); - return; - } Rectangle clip = g.getClipBounds().intersection(bounds); if (clip.height == 0) return; @@ -840,7 +829,6 @@ private void doMouseClicked(@NotNull MouseEvent e) { @Override public void mouseMoved(@NotNull MouseEvent e) { - if (isMacScrollbarHiddenAndXcodeLikeScrollbar()) return; EditorImpl.MyScrollBar scrollBar = myEditor.getVerticalScrollBar(); int buttonHeight = scrollBar.getDecScrollButtonHeight(); int lineCount = getDocument().getLineCount() + myEditor.getSettings().getAdditionalLinesCount(); From b676fb42a898e68d26f8193324f812631b3038c5 Mon Sep 17 00:00:00 2001 From: Nicolae Vartolomei Date: Sun, 15 Jul 2018 00:36:04 +0100 Subject: [PATCH 2/2] Avoid useless calculation if thumb is not visible --- .../src/com/intellij/util/ui/ButtonlessScrollBarUI.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/platform/platform-api/src/com/intellij/util/ui/ButtonlessScrollBarUI.java b/platform/platform-api/src/com/intellij/util/ui/ButtonlessScrollBarUI.java index 258aa61473744..08f1bc8321a38 100644 --- a/platform/platform-api/src/com/intellij/util/ui/ButtonlessScrollBarUI.java +++ b/platform/platform-api/src/com/intellij/util/ui/ButtonlessScrollBarUI.java @@ -773,11 +773,11 @@ protected int getThumbOffset(int value) { private void paintMacThumb(Graphics g, Rectangle thumbBounds) { if (isMacScrollbarHiddenAndXcodeLikeScrollbar()) return; - thumbBounds = getMacScrollBarBounds(thumbBounds, true); - Graphics2D g2d = (Graphics2D)g; - - float value = (float)(1 - myMacScrollbarFadeLevel); if (!myMacScrollbarHidden || alwaysPaintThumb()) { + thumbBounds = getMacScrollBarBounds(thumbBounds, true); + Graphics2D g2d = (Graphics2D)g; + + float value = (float)(1 - myMacScrollbarFadeLevel); RegionPainter painter = isDark() ? JBScrollPane.MAC_THUMB_DARK_PAINTER : JBScrollPane.MAC_THUMB_PAINTER; painter.paint(g2d, thumbBounds.x - 2, thumbBounds.y - 2, thumbBounds.width + 4, thumbBounds.height + 4, value); }