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 704dfcde5001..b11ca7f3222f 100644 --- a/platform/platform-api/src/com/intellij/util/ui/ButtonlessScrollBarUI.java +++ b/platform/platform-api/src/com/intellij/util/ui/ButtonlessScrollBarUI.java @@ -223,10 +223,10 @@ public class ButtonlessScrollBarUI extends BasicScrollBarUI { } public int getDecrementButtonHeight() { - return decrButton.getHeight(); + return Math.max(0, decrButton.getHeight()); } public int getIncrementButtonHeight() { - return incrButton.getHeight(); + return Math.max(0, incrButton.getHeight()); } private void resetRegularThumbAnimator() { diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java index 21d527b1fff5..51f6ec4a8cdb 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java @@ -4822,22 +4822,21 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi int getDecScrollButtonHeight() { ScrollBarUI barUI = getUI(); Insets insets = getInsets(); + int top = Math.max(0, insets.top); if (barUI instanceof ButtonlessScrollBarUI) { - return insets.top + ((ButtonlessScrollBarUI)barUI).getDecrementButtonHeight(); + return top + ((ButtonlessScrollBarUI)barUI).getDecrementButtonHeight(); } - else if (barUI instanceof BasicScrollBarUI) { + if (barUI instanceof BasicScrollBarUI) { try { JButton decrButtonValue = (JButton)decrButtonField.get(barUI); LOG.assertTrue(decrButtonValue != null); - return insets.top + decrButtonValue.getHeight(); + return top + decrButtonValue.getHeight(); } catch (Exception exc) { throw new IllegalStateException(exc); } } - else { - return insets.top + 15; - } + return top + 15; } /** 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 1df027a8cfb0..c4602784c0a7 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 @@ -127,9 +127,10 @@ public class EditorMarkupModelImpl extends MarkupModelImpl implements EditorMark void recalcEditorDimensions() { EditorImpl.MyScrollBar scrollBar = myEditor.getVerticalScrollBar(); - int scrollBarHeight = scrollBar.getSize().height; + int scrollBarHeight = Math.max(0, scrollBar.getSize().height); myEditorScrollbarTop = scrollBar.getDecScrollButtonHeight()/* + 1*/; + assert myEditorScrollbarTop>=0; int editorScrollbarBottom = scrollBar.getIncScrollButtonHeight(); myEditorTargetHeight = scrollBarHeight - myEditorScrollbarTop - editorScrollbarBottom; myEditorSourceHeight = myEditor.getPreferredHeight();