Skip to content

Commit 9200f7c

Browse files
committed
GH-364 workaround for empty border insets in GTK l&f
1 parent 1b4a66a commit 9200f7c

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

visualvm/libs.profiler/lib.profiler.ui/src/org/graalvm/visualvm/lib/ui/swing/ProfilerTreeTable.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
import javax.swing.SortOrder;
5858
import javax.swing.SwingUtilities;
5959
import javax.swing.UIManager;
60+
import javax.swing.border.Border;
6061
import javax.swing.event.ListSelectionEvent;
6162
import javax.swing.event.ListSelectionListener;
6263
import javax.swing.event.TreeExpansionEvent;
@@ -75,6 +76,7 @@
7576
import javax.swing.table.TableModel;
7677
import javax.swing.table.TableRowSorter;
7778
import javax.swing.tree.DefaultMutableTreeNode;
79+
import javax.swing.tree.DefaultTreeCellRenderer;
7880
import javax.swing.tree.DefaultTreeModel;
7981
import javax.swing.tree.ExpandVetoException;
8082
import javax.swing.tree.TreeCellRenderer;
@@ -1626,6 +1628,7 @@ protected void drawCentered(Component c, Graphics graphics, Icon icon,
16261628
super.drawCentered(c, image[0].getGraphics(), icon, w / 2, h / 2);
16271629
}
16281630
});
1631+
fixBorder(tree);
16291632

16301633
// Expanded
16311634
tree.expandRow(0);
@@ -1652,8 +1655,19 @@ protected void drawCentered(Component c, Graphics graphics, Icon icon,
16521655
ICONS[3] = new ImageIcon(image[0]);
16531656

16541657
}
1655-
1656-
1658+
1659+
private static void fixBorder(JTree tree) {
1660+
TreeCellRenderer cellRenderer = tree.getCellRenderer();
1661+
if (cellRenderer instanceof DefaultTreeCellRenderer) {
1662+
DefaultTreeCellRenderer defaultRenderer = (DefaultTreeCellRenderer) cellRenderer;
1663+
Border treeBorder = defaultRenderer.getBorder();
1664+
Insets i = treeBorder.getBorderInsets(defaultRenderer);
1665+
if (i.bottom + i.left + i.right + i.top == 0) {
1666+
defaultRenderer.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));
1667+
}
1668+
}
1669+
}
1670+
16571671
private boolean isSelected;
16581672

16591673
void setSelected(boolean selected) { isSelected = selected; }

0 commit comments

Comments
 (0)