From dcddde59572f07de699ff3c3837dac9311def824 Mon Sep 17 00:00:00 2001 From: Artem Bochkarev Date: Thu, 3 May 2018 17:23:46 +0700 Subject: [PATCH] IDEA-163208: filter mnemonic from popup strings --- .../com/intellij/ui/mac/touchbar/TouchBarsManager.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/platform/platform-impl/src/com/intellij/ui/mac/touchbar/TouchBarsManager.java b/platform/platform-impl/src/com/intellij/ui/mac/touchbar/TouchBarsManager.java index 644dfd0a8269..1fe69828b85b 100644 --- a/platform/platform-impl/src/com/intellij/ui/mac/touchbar/TouchBarsManager.java +++ b/platform/platform-impl/src/com/intellij/ui/mac/touchbar/TouchBarsManager.java @@ -20,6 +20,7 @@ import com.intellij.openapi.ui.OptionAction; import com.intellij.openapi.ui.popup.JBPopupListener; import com.intellij.openapi.ui.popup.LightweightWindowEvent; import com.intellij.openapi.ui.popup.ListPopupStep; +import com.intellij.openapi.ui.popup.MnemonicNavigationFilter; import com.intellij.openapi.wm.ex.ToolWindowManagerEx; import com.intellij.openapi.wm.ex.ToolWindowManagerListener; import com.intellij.ui.components.JBOptionButton; @@ -338,7 +339,14 @@ public class TouchBarsManager { @NotNull ListPopupStep listPopupStep = listPopup.getListStep(); for (Object obj : listPopupStep.getValues()) { final Icon ic = listPopupStep.getIconFor(obj); - final String txt = listPopupStep.getTextFor(obj); + String txt = listPopupStep.getTextFor(obj); + + if (listPopupStep.isMnemonicsNavigationEnabled()) { + final MnemonicNavigationFilter filter = listPopupStep.getMnemonicNavigationFilter(); + final int pos = filter == null ? -1 : filter.getMnemonicPos(obj); + if (pos != -1) + txt = txt.substring(0, pos) + txt.substring(pos + 1); + } final Runnable action = () -> { listPopup.getList().setSelectedValue(obj, false);