| author | Peter Hutterer <peter.hutterer@redhat.com> | 2008-12-03 04:24:25 (GMT) |
|---|---|---|
| committer | Peter Hutterer <peter.hutterer@redhat.com> | 2008-12-03 06:10:40 (GMT) |
| commit | 9c5dd7337fa93fb1650cc017e523b939dcbf482a (patch) (side-by-side diff) | |
| tree | 82687e11b23e3354fee5560c430d6237b35417f1 | |
| parent | 463e02e7de5da3e582a3a049110a476713c7210e (diff) | |
| download | xserver-9c5dd7337fa93fb1650cc017e523b939dcbf482a.zip xserver-9c5dd7337fa93fb1650cc017e523b939dcbf482a.tar.gz | |
Let the DDX decide on the XkbRulesDefaults.
Rather than assuming rules in the CoreKeyboardProc, init the default rules in
InitCoreDevices, then re-use them later.
In the xfree86 DDX, set the rules to "base" or "evdev", depending on whether
we'll load kbd or evdev.
If we create a new MD, use pc105,us as default and re-use the rules file used
previously.
Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
| -rw-r--r-- | Xi/chdevhier.c | 6 | ||||
| -rw-r--r-- | dix/devices.c | 1 | ||||
| -rw-r--r-- | hw/xfree86/common/xf86Config.c | 6 |
3 files changed, 11 insertions, 2 deletions
diff --git a/Xi/chdevhier.c b/Xi/chdevhier.c index db16349..631857d 100644 --- a/Xi/chdevhier.c +++ b/Xi/chdevhier.c @@ -117,7 +117,11 @@ ProcXChangeDeviceHierarchy(ClientPtr client) if (!c->sendCore) ptr->coreEvents = keybd->coreEvents = FALSE; - +#ifdef XKB + /* supplying NULL for rules simply means we re-use + whatever ruleset we used for the previous devices. */ + XkbSetRulesDflts(NULL, "pc105", "us", NULL, NULL); +#endif ActivateDevice(ptr); ActivateDevice(keybd); diff --git a/dix/devices.c b/dix/devices.c index 6b8cecb..9feca90 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -526,7 +526,6 @@ CoreKeyboardProc(DeviceIntPtr pDev, int what) #ifdef XKB if (!noXkbExtension) { bzero(&names, sizeof(names)); - XkbSetRulesDflts("base", "pc105", "us", NULL, NULL); XkbInitKeyboardDeviceStruct(pDev, &names, &keySyms, modMap, CoreKeyboardBell, CoreKeyboardCtl); } diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c index 1210a8f..9bf18b5 100644 --- a/hw/xfree86/common/xf86Config.c +++ b/hw/xfree86/common/xf86Config.c @@ -1008,6 +1008,12 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts) xf86Info.allowEmptyInput = (xf86Info.autoAddDevices && xf86Info.autoEnableDevices); xf86GetOptValBool(FlagOptions, FLAG_ALLOW_EMPTY_INPUT, &xf86Info.allowEmptyInput); + /* AEI on? Then we're not using kbd, so use the evdev rules set. */ +#ifdef XKB + XkbSetRulesDflts(((xf86Info.allowEmptyInput) ? "evdev" : "base"), + "pc105", "us", NULL, NULL); +#endif + xf86Info.useDefaultFontPath = TRUE; xf86Info.useDefaultFontPathFrom = X_DEFAULT; if (xf86GetOptValBool(FlagOptions, FLAG_USE_DEFAULT_FONT_PATH, &value)) { |
