summaryrefslogtreecommitdiff
path: root/gtk/gtkaccellabel.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2011-02-04 15:34:36 -0500
committerMatthias Clasen <mclasen@redhat.com>2011-02-04 15:34:36 -0500
commitb6783933c9dbf6bf29c8177f2d0d1eec09119f3b (patch)
tree53e8b92421c728b43de4209345a7dbe928677485 /gtk/gtkaccellabel.c
parent08f90b71a28b317944407675d57321c628201994 (diff)
downloadgtk+-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.c19
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);