diff options
author | Matthias Clasen <mclasen@redhat.com> | 2011-02-04 15:34:36 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2011-02-04 15:34:36 -0500 |
commit | b6783933c9dbf6bf29c8177f2d0d1eec09119f3b (patch) | |
tree | 53e8b92421c728b43de4209345a7dbe928677485 /gtk/gtkaccellabel.c | |
parent | 08f90b71a28b317944407675d57321c628201994 (diff) | |
download | gtk+-b6783933c9dbf6bf29c8177f2d0d1eec09119f3b.tar.gz |
Strip XF86 prefix from untranslated keysyms
When we don't have translations, at least remove the
ugly XF86 prefix.
Diffstat (limited to 'gtk/gtkaccellabel.c')
-rw-r--r-- | gtk/gtkaccellabel.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/gtk/gtkaccellabel.c b/gtk/gtkaccellabel.c index e354d279c1..0b0e1bc780 100644 --- a/gtk/gtkaccellabel.c +++ b/gtk/gtkaccellabel.c @@ -600,7 +600,7 @@ gtk_accel_label_get_string (GtkAccelLabel *accel_label) * E.g., Page_Up should be "Page Up" */ static void -substitute_underscores (char *str) +substitute_underscores (gchar *str) { char *p; @@ -609,6 +609,20 @@ substitute_underscores (char *str) *p = ' '; } +/* Some keynames have prefixes that are not suitable + * for display, e.g XF86AudioMute + */ +static gchar * +strip_prefix (gchar *str) +{ + if (g_str_has_prefix (str, "XF86")) + return str + 4; + else if (g_str_has_prefix (str, "ISO_")) + return str + 4; + + return str; +} + /* On Mac, if the key has symbolic representation (e.g. arrow keys), * append it to gstring and return TRUE; otherwise return FALSE. * See http://docs.info.apple.com/article.html?path=Mac/10.5/en/cdb_symbs.html @@ -833,8 +847,9 @@ _gtk_accel_label_class_get_accelerator_label (GtkAccelLabelClass *klass, str = g_dpgettext2 (GETTEXT_PACKAGE, "keyboard label", tmp); if (str == tmp) { + substitute_underscores (tmp); + tmp = strip_prefix (tmp); g_string_append (gstring, tmp); - substitute_underscores (gstring->str); } else g_string_append (gstring, str); |