From 007068ba429bb181caea3832a48d3ee63334eaae Mon Sep 17 00:00:00 2001 From: Mikhail Sokolov Date: Wed, 3 Jul 2019 17:05:14 +0300 Subject: [PATCH] IDEA-217369 IntelliJ LaF: Selection bar on Actions tab in Search Everywhere is grey GitOrigin-RevId: 701fa4e9d19fd7733bc2bb613d09d4434b7e5185 --- .../ide/actions/searcheverywhere/SearchEverywhereUI.java | 2 +- .../com/intellij/ui/components/WideSelectionListUI.java | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereUI.java b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereUI.java index 57f16942f90e..501e81498c6a 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereUI.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/searcheverywhere/SearchEverywhereUI.java @@ -960,7 +960,7 @@ public class SearchEverywhereUI extends BigPopupUI implements DataProvider, Quic list, value, index, isSelected, cellHasFocus); if (component == null) { component = contributor.getElementsRenderer().getListCellRendererComponent( - list, value, index, isSelected, cellHasFocus); + list, value, index, isSelected, true); } if (component instanceof JComponent) { diff --git a/platform/platform-api/src/com/intellij/ui/components/WideSelectionListUI.java b/platform/platform-api/src/com/intellij/ui/components/WideSelectionListUI.java index e70424f1ffdc..b4021b519310 100644 --- a/platform/platform-api/src/com/intellij/ui/components/WideSelectionListUI.java +++ b/platform/platform-api/src/com/intellij/ui/components/WideSelectionListUI.java @@ -12,6 +12,7 @@ import javax.swing.*; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicListUI; import java.awt.*; +import java.util.Arrays; /** * @author Sergey.Malenkov @@ -38,7 +39,7 @@ public final class WideSelectionListUI extends BasicListUI { Rectangle paintBounds = myPaintBounds; if (paintBounds != null) { boolean selected = selectionModel.isSelectedIndex(row); - boolean focused = row == leadSelectionIndex && list.hasFocus(); + boolean focused = row == leadSelectionIndex && (!list.isFocusable() || list.hasFocus()); Object value = model.getElementAt(row); Color background = getBackground(list, value, row); if (background != null) { @@ -156,11 +157,14 @@ public final class WideSelectionListUI extends BasicListUI { ListModel dataModel = list.getModel(); int dataModelSize = dataModel.getSize(); ListCellRenderer renderer = list.getCellRenderer(); + int[] selectedIndices = list.getSelectedIndices(); + boolean hasFocus = !list.isFocusable() || list.hasFocus(); if (renderer != null) { for (int index = 0; index < dataModelSize; index++) { Object value = dataModel.getElementAt(index); //noinspection unchecked - Component c = renderer.getListCellRendererComponent(list, value, index, false, false); + boolean selected = Arrays.binarySearch(selectedIndices, index) >= 0; + Component c = renderer.getListCellRendererComponent(list, value, index, selected, hasFocus); rendererPane.add(c); Dimension cellSize = UIUtil.updateListRowHeight(c.getPreferredSize()); if (fixedCellWidth == -1) {