summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Davenport <qball@gmpclient.org>2017-01-15 21:14:43 +0100
committerDave Davenport <qball@gmpclient.org>2017-01-15 21:14:43 +0100
commit30f7846e4c106957709cc4039068f1d57f1587d7 (patch)
tree1dcd45856bc1d4391f3aece0737d29d9c1cfc88c
parent0e1b02d2f42bed92f2c4e9a95e1ac80419a34606 (diff)
Give error when multiple (non-modifier) keys are hit.
-rw-r--r--source/x11-helper.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/source/x11-helper.c b/source/x11-helper.c
index 3723e883..2411d3ec 100644
--- a/source/x11-helper.c
+++ b/source/x11-helper.c
@@ -678,7 +678,10 @@ gboolean x11_parse_key ( const char *combo, unsigned int *mod, xkb_keysym_t *key
error_msg = g_strdup ( "X11 configured keyboard has no <b>Alt</b> key.\n" );
}
}
- else if ( g_utf8_collate ( entry_lowered, "super" ) == 0 ) {
+ else if ( g_utf8_collate ( entry_lowered, "super" ) == 0 ||
+ g_utf8_collate ( entry_lowered, "super_l" ) == 0 ||
+ g_utf8_collate ( entry_lowered, "super_r" ) == 0
+ ) {
modmask |= x11_mod_masks[X11MOD_SUPER];
if ( x11_mod_masks[X11MOD_SUPER] == 0 ) {
error_msg = g_strdup ( "X11 configured keyboard has no <b>Super</b> key.\n" );
@@ -697,6 +700,9 @@ gboolean x11_parse_key ( const char *combo, unsigned int *mod, xkb_keysym_t *key
}
}
else {
+ if ( sym != XKB_KEY_NoSymbol ) {
+ error_msg = g_markup_printf_escaped ( "Only one (non modifier) key can be bound per binding: <b>%s</b> is invalid.\n", entry);
+ }
sym = xkb_keysym_from_name ( entry, XKB_KEYSYM_NO_FLAGS );
if ( sym == XKB_KEY_NoSymbol ) {
error_msg = g_markup_printf_escaped ( "∙ Key <i>%s</i> is not understood\n", entry );