aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/evdev.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/evdev.c b/src/evdev.c
index 61c6dca..cba77e9 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -675,11 +675,21 @@ EvdevAddKeyClass(DeviceIntPtr device)
#ifdef XKB
else
{
- SetXkbOption(pInfo, "XkbRules", &pEvdev->xkb_rules);
- SetXkbOption(pInfo, "XkbModel", &pEvdev->xkb_model);
- SetXkbOption(pInfo, "XkbLayout", &pEvdev->xkb_layout);
- SetXkbOption(pInfo, "XkbVariant", &pEvdev->xkb_variant);
- SetXkbOption(pInfo, "XkbOptions", &pEvdev->xkb_options);
+ SetXkbOption(pInfo, "xkb_rules", &pEvdev->xkb_rules);
+ if (!pEvdev->xkb_rules)
+ SetXkbOption(pInfo, "XkbRules", &pEvdev->xkb_rules);
+ SetXkbOption(pInfo, "xkb_model", &pEvdev->xkb_model);
+ if (!pEvdev->xkb_rules)
+ SetXkbOption(pInfo, "XkbModel", &pEvdev->xkb_rules);
+ SetXkbOption(pInfo, "xkb_layout", &pEvdev->xkb_layout);
+ if (!pEvdev->xkb_rules)
+ SetXkbOption(pInfo, "XkbLayout", &pEvdev->xkb_rules);
+ SetXkbOption(pInfo, "xkb_variant", &pEvdev->xkb_variant);
+ if (!pEvdev->xkb_rules)
+ SetXkbOption(pInfo, "XkbVariant", &pEvdev->xkb_rules);
+ SetXkbOption(pInfo, "xkb_options", &pEvdev->xkb_options);
+ if (!pEvdev->xkb_rules)
+ SetXkbOption(pInfo, "XkbOptions", &pEvdev->xkb_rules);
if (pEvdev->xkbnames.keymap)
pEvdev->xkb_rules = NULL;