From a4e89fb0c323dbecd3ac407cfe0fd0221be13b32 Mon Sep 17 00:00:00 2001 From: "Alisa.Afonina" Date: Fri, 5 Jul 2024 14:33:01 +0200 Subject: [PATCH] [ui] add possibility to disable row hovering in tables for one row Table api allows disabling hover for whole tables, and sometimes it's needed to disable hover for some rows (e.g. separators) GitOrigin-RevId: 05378dce11134fb7590583f106366a783dc74547 --- platform/platform-api/src/com/intellij/ui/table/JBTable.java | 2 +- .../util/ui/src/com/intellij/ui/render/RenderingUtil.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/platform/platform-api/src/com/intellij/ui/table/JBTable.java b/platform/platform-api/src/com/intellij/ui/table/JBTable.java index b88bc63ad3e9..cc5225b162c0 100644 --- a/platform/platform-api/src/com/intellij/ui/table/JBTable.java +++ b/platform/platform-api/src/com/intellij/ui/table/JBTable.java @@ -738,7 +738,7 @@ public class JBTable extends JTable implements ComponentWithEmptyText, Component } } else { - Color hovered = isHoverPaintingDisabled(this) ? null : getHoveredRowBackground(); + Color hovered = isHoverPaintingDisabled(this) || isHoverPaintingDisabled(component) ? null : getHoveredRowBackground(); if (hovered != null) { if (row == TableHoverListener.getHoveredRow(this)) { setRendererBackground(component, hovered); diff --git a/platform/util/ui/src/com/intellij/ui/render/RenderingUtil.java b/platform/util/ui/src/com/intellij/ui/render/RenderingUtil.java index 784ec350ff41..ccdc4e8b7efe 100644 --- a/platform/util/ui/src/com/intellij/ui/render/RenderingUtil.java +++ b/platform/util/ui/src/com/intellij/ui/render/RenderingUtil.java @@ -162,6 +162,10 @@ public final class RenderingUtil { return Boolean.FALSE.equals(component.getClientProperty(PAINT_HOVERED_BACKGROUND)); } + @ApiStatus.Internal + public static void setHoverPaintingDisabled(@NotNull JComponent component, boolean disabled) { + component.putClientProperty(PAINT_HOVERED_BACKGROUND, !disabled); + } public static @Nullable Color getHoverBackground(@NotNull JList list) { if (isHoverPaintingDisabled(list)) return null; return CurrentTheme.List.Hover.background(isFocused(list));