From 4dfb4685eb1301470a5ea39b837cd67e3099c407 Mon Sep 17 00:00:00 2001 From: Louis Vignier Date: Thu, 7 Dec 2023 11:32:18 +0100 Subject: [PATCH] [ui] Use JBScrollPane for combo popups and set overlapping scroll bar IJ-CR-115670 GitOrigin-RevId: 114f9aaa9b360ab2de84a6ffc1dbb7a2a80098d0 --- .../ide/ui/laf/darcula/ui/DarculaComboBoxUI.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaComboBoxUI.java b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaComboBoxUI.java index f11113a98985..b9e950bffd99 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaComboBoxUI.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/laf/darcula/ui/DarculaComboBoxUI.java @@ -9,6 +9,7 @@ import com.intellij.openapi.ui.popup.util.PopupUtil; import com.intellij.openapi.util.*; import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.*; +import com.intellij.ui.components.JBScrollPane; import com.intellij.ui.dsl.listCellRenderer.KotlinUIDslRenderer; import com.intellij.ui.popup.list.ComboBoxPopup; import com.intellij.ui.render.RenderingUtil; @@ -720,6 +721,16 @@ public class DarculaComboBoxUI extends BasicComboBoxUI implements Border, ErrorB super(combo); } + @Override + protected JScrollPane createScroller() { + final var sp = new JBScrollPane(list, + ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, + ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + sp.setHorizontalScrollBar(null); + sp.setOverlappingScrollBar(true); + return sp; + } + @Override protected void configurePopup() { super.configurePopup(); @@ -786,8 +797,6 @@ public class DarculaComboBoxUI extends BasicComboBoxUI implements Border, ErrorB if (ExperimentalUI.isNewUI() && ComboBoxPopup.isRendererWithInsets(comboBox.getRenderer())) { scroller.setViewportBorder(JBUI.Borders.empty(PopupUtil.getListInsets(false, false))); - scroller.setBackground(UIManager.getColor("ComboBox.background")); - scroller.getVerticalScrollBar().setBackground(UIManager.getColor("ComboBox.background")); sideBorders = 10; }