Allow escaping _ in menu labels by putting __
authorMikael Magnusson <mikachu@gmail.com>
Sun, 5 Jul 2009 13:53:29 +0000 (15:53 +0200)
committerMikael Magnusson <mikachu@gmail.com>
Sun, 5 Jul 2009 13:55:17 +0000 (15:55 +0200)
Currently you can't mark anything that comes after the __ with _ to make
that a shortcut.

openbox/menu.c

index 23a0527..58b6280 100644 (file)
@@ -232,10 +232,13 @@ static gunichar parse_shortcut(const gchar *label, gboolean allow_shortcut,
             /* you have to use a printable ascii character for shortcuts
                don't allow space either, so you can have like "a _ b"
             */
-            if (VALID_SHORTCUT(*(i+1))) {
-                shortcut = g_unichar_tolower(g_utf8_get_char(i+1));
-                *position = i - *strippedlabel;
-                *always_show = TRUE;
+            if (VALID_SHORTCUT(*(i+1)) || *(i+1) == '_') {
+                /* Allow you to escape the first _ by putting __ */
+                if (*(i+1) != '_') {
+                    shortcut = g_unichar_tolower(g_utf8_get_char(i+1));
+                    *position = i - *strippedlabel;
+                    *always_show = TRUE;
+                }
 
                 /* remove the '_' from the string */
                 for (; *i != '\0'; ++i)