diff --git a/gtk2_ardour/actions.cc b/gtk2_ardour/actions.cc index d0dacb04a7..ae0cd993ad 100644 --- a/gtk2_ardour/actions.cc +++ b/gtk2_ardour/actions.cc @@ -36,6 +36,7 @@ #include "actions.h" #include "opts.h" #include "i18n.h" +#include "utils.h" using namespace std; using namespace Gtk; @@ -240,21 +241,29 @@ ActionManager::get_all_actions (vector& names, vector& paths, ve names.push_back (label); paths.push_back (accel_path); - + AccelKey key; - bool known = lookup_entry (accel_path, key); - - if (known) { - keys.push_back (ui_manager->get_accel_group()->name (key.get_key(), Gdk::ModifierType (key.get_mod()))); - } else { - keys.push_back (unbound_string); - } - + keys.push_back (get_key_representation (accel_path, key)); bindings.push_back (AccelKey (key.get_key(), Gdk::ModifierType (key.get_mod()))); } } } +string +ActionManager::get_key_representation (const string& accel_path, AccelKey& key) +{ + bool known = lookup_entry (accel_path, key); + + if (known) { + + uint32_t k = key.get_key(); + possibly_translate_keyval_to_make_legal_accelerator (k); + key = AccelKey (k, Gdk::ModifierType (key.get_mod())); + return ui_manager->get_accel_group()->get_label (key.get_key(), Gdk::ModifierType (key.get_mod())); + } + + return unbound_string; +} void ActionManager::add_action_group (RefPtr grp) diff --git a/gtk2_ardour/actions.h b/gtk2_ardour/actions.h index de663f106e..9b393c0aee 100644 --- a/gtk2_ardour/actions.h +++ b/gtk2_ardour/actions.h @@ -107,6 +107,8 @@ class ActionManager std::vector& bindings); static void uncheck_toggleaction (const char * actionname); + + static string get_key_representation (const std::string& accel_path, Gtk::AccelKey& key); }; #endif /* __ardour_gtk_actions_h__ */ diff --git a/gtk2_ardour/keyeditor.cc b/gtk2_ardour/keyeditor.cc index df895b87b9..5cc7e5f2b8 100644 --- a/gtk2_ardour/keyeditor.cc +++ b/gtk2_ardour/keyeditor.cc @@ -255,23 +255,7 @@ KeyEditor::populate () if (*k == ActionManager::unbound_string) { row[columns.binding] = string(); } else { - -#ifdef GTKOSX - string label = (*k); - - /* Gtk/Quartz maps: - NSAlternate/NSOption key to Mod1 - NSCommand key to Meta - */ - - replace_all (label, "", _("Command-")); - replace_all (label, "", _("Option-")); - replace_all (label, "", _("Shift-")); - replace_all (label, "", _("Control-")); - row[columns.binding] = label; -#else row[columns.binding] = (*k); -#endif } } }