forked from dorkbox/SystemTray
Fixed issue on windows/swing where menu entries with no icon are the
wrong size.
This commit is contained in:
parent
a018a76185
commit
3b80b126ed
@ -25,19 +25,31 @@ import javax.swing.JMenuItem;
|
|||||||
import dorkbox.systemTray.MenuItem;
|
import dorkbox.systemTray.MenuItem;
|
||||||
import dorkbox.systemTray.SystemTray;
|
import dorkbox.systemTray.SystemTray;
|
||||||
import dorkbox.systemTray.peer.MenuItemPeer;
|
import dorkbox.systemTray.peer.MenuItemPeer;
|
||||||
|
import dorkbox.systemTray.util.ImageUtils;
|
||||||
import dorkbox.util.SwingUtil;
|
import dorkbox.util.SwingUtil;
|
||||||
|
|
||||||
class SwingMenuItem implements MenuItemPeer {
|
class SwingMenuItem implements MenuItemPeer {
|
||||||
|
|
||||||
|
// necessary to have the correct scaling + padding for the menu entries.
|
||||||
|
private static ImageIcon transparentIcon;
|
||||||
|
|
||||||
private final SwingMenu parent;
|
private final SwingMenu parent;
|
||||||
private final JMenuItem _native = new AdjustedJMenuItem();
|
private final JMenuItem _native = new AdjustedJMenuItem();
|
||||||
|
|
||||||
private volatile ActionListener swingCallback;
|
private volatile ActionListener swingCallback;
|
||||||
|
|
||||||
|
|
||||||
// this is ALWAYS called on the EDT.
|
// this is ALWAYS called on the EDT.
|
||||||
SwingMenuItem(final SwingMenu parent) {
|
SwingMenuItem(final SwingMenu parent) {
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
parent._native.add(_native);
|
parent._native.add(_native);
|
||||||
|
|
||||||
|
if (transparentIcon == null) {
|
||||||
|
File uncheckedFile = ImageUtils.getTransparentImage(ImageUtils.ENTRY_SIZE);
|
||||||
|
transparentIcon = new ImageIcon(uncheckedFile.getAbsolutePath());
|
||||||
|
}
|
||||||
|
|
||||||
|
_native.setIcon(transparentIcon);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -53,7 +65,7 @@ class SwingMenuItem implements MenuItemPeer {
|
|||||||
_native.setIcon(origIcon);
|
_native.setIcon(origIcon);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
_native.setIcon(null);
|
_native.setIcon(transparentIcon);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user