Adds partially transparent selection effect on top level menus.

This commit is contained in:
Stian Grenborgen 2023-05-20 19:43:25 +02:00
parent edf47c35e7
commit 4f4d481a88
1 changed files with 14 additions and 0 deletions

View File

@ -27,8 +27,10 @@ import java.awt.Graphics2D;
import java.awt.Insets;
import javax.swing.BorderFactory;
import javax.swing.ButtonModel;
import javax.swing.JComponent;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.event.AncestorEvent;
import javax.swing.event.AncestorListener;
import javax.swing.plaf.ComponentUI;
@ -85,6 +87,18 @@ public class FreeColMenuUI extends BasicMenuUI {
super.paint(g, c);
}
@Override
protected void paintBackground(Graphics g, JMenuItem menuItem, Color bgColor) {
if (!topLevelMenuItem) {
super.paintBackground(g, menuItem, bgColor);
return;
}
final ButtonModel model = menuItem.getModel();
final Color bgColorModified = (model.isSelected()) ? new Color(255, 255, 255, 128) : bgColor;
super.paintBackground(g, menuItem, bgColorModified);
}
private AncestorListener createAncestorListener() {
return new AncestorListener() {
@Override