From f85b16cbde3043c693fcde94e5b308b696205a1e Mon Sep 17 00:00:00 2001 From: Maxim Shafirov Date: Mon, 10 Oct 2011 18:54:33 +0400 Subject: [PATCH] "Native" checkbox menu items in Mac's screen menu --- .../intellij/openapi/actionSystem/impl/ActionMenuItem.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionMenuItem.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionMenuItem.java index b20533ca5d39..6b3b167eb439 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionMenuItem.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/impl/ActionMenuItem.java @@ -46,7 +46,7 @@ import java.beans.PropertyChangeListener; import java.util.HashSet; import java.util.Set; -public class ActionMenuItem extends JMenuItem { +public class ActionMenuItem extends JCheckBoxMenuItem { private static final Icon ourCheckedIcon = new SizedIcon(PlatformIcons.CHECK_ICON, 18, 18); private static final Icon ourUncheckedIcon = EmptyIcon.ICON_18; @@ -268,7 +268,10 @@ public class ActionMenuItem extends JMenuItem { if (isToggleable() && myPresentation.getIcon() == null) { action.update(myEvent); myToggled = Boolean.TRUE.equals(myEvent.getPresentation().getClientProperty(Toggleable.SELECTED_PROPERTY)); - if (!(getUI() instanceof GtkMenuItemUI)) { + if (ActionPlaces.MAIN_MENU.equals(myPlace) && SystemInfo.isMacSystemMenu) { + setState(myToggled); + } + else if (!(getUI() instanceof GtkMenuItemUI)) { if (myToggled) { setIcon(ourCheckedIcon); setDisabledIcon(IconLoader.getDisabledIcon(ourCheckedIcon));