From 4a6b15137fb8e4750cadddc4a9e68f96faf2e561 Mon Sep 17 00:00:00 2001 From: dragonmacher <48328597+dragonmacher@users.noreply.github.com> Date: Mon, 30 Dec 2024 16:08:27 -0500 Subject: [PATCH] Fixed FlatLaf table header painting on hover --- .../java/docking/widgets/table/GTableHeaderRenderer.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableHeaderRenderer.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableHeaderRenderer.java index 06ef1bc0c6..5974c197b0 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableHeaderRenderer.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableHeaderRenderer.java @@ -105,10 +105,17 @@ public class GTableHeaderRenderer extends DefaultTableCellRenderer { updateClipping(); + // Note: we should not have to set the colors here. That is usually done by the renderer + // when getTableCellRendererComponent() is called. Some Lafs, like the FlatLaf will change + // colors when painting, after the renderer component has been configured. To support that, + // we must update the colors here as well. + rendererComponent.setBackground(getBackground()); + rendererComponent.setForeground(getForeground()); + rendererComponent.paint(g); // paint our items after the delegate call so that we paint on top - super.paint(g); + paintChildren(g); } private void updateClipping() {