Fix names of menu keys in options dialog on OS X
Apple changed the implementation of KeyEvent.getKeyText() to
return the unicode for the key glyph instead of a textual
description.
diff --git a/java/com/tigervnc/vncviewer/MenuKey.java b/java/com/tigervnc/vncviewer/MenuKey.java
index 63b6380..071c004 100644
--- a/java/com/tigervnc/vncviewer/MenuKey.java
+++ b/java/com/tigervnc/vncviewer/MenuKey.java
@@ -70,6 +70,13 @@
return menuSymbols;
}
+ public static String getKeyText(MenuKeySymbol sym) {
+ if (VncViewer.os.startsWith("mac os x"))
+ return sym.name.replace("_", " ");
+ else
+ return KeyEvent.getKeyText(sym.keycode);
+ }
+
public static String getMenuKeyValueStr() {
String s = "";
for (int i = 0; i < getMenuKeySymbolCount(); i++) {
diff --git a/java/com/tigervnc/vncviewer/OptionsDialog.java b/java/com/tigervnc/vncviewer/OptionsDialog.java
index 3bd74e2..1681518 100644
--- a/java/com/tigervnc/vncviewer/OptionsDialog.java
+++ b/java/com/tigervnc/vncviewer/OptionsDialog.java
@@ -412,7 +412,7 @@
JLabel menuKeyLabel = new JLabel("Menu Key");
String[] menuKeys = new String[MenuKey.getMenuKeySymbolCount()];
for (int i = 0; i < MenuKey.getMenuKeySymbolCount(); i++)
- menuKeys[i] = KeyEvent.getKeyText(MenuKey.getMenuKeySymbols()[i].keycode);
+ menuKeys[i] = MenuKey.getKeyText(MenuKey.getMenuKeySymbols()[i]);
menuKey = new JComboBox(menuKeys);
inputPanel.add(viewOnly,