diff options
Diffstat (limited to 'abs/core/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch')
-rw-r--r-- | abs/core/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/abs/core/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch b/abs/core/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch deleted file mode 100644 index 2ac6095..0000000 --- a/abs/core/xorg-server/xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 638cab7e1dc3711f7fb04155bcdabf4b8895cc5e Mon Sep 17 00:00:00 2001 -From: Peter Hutterer <peter.hutterer@who-t.net> -Date: Mon, 4 Aug 2008 17:08:36 +0930 -Subject: [PATCH] xfree86: force SwitchCoreKeyboard for evdev devices (updated). - -If an evdev keyboard device is added through the HAL mechanism, force a -SwitchCoreKeyboard to load the evdev map into the VCK. This way, by the time a -client starts the evdev keymap is already there, leading to less pain lateron. - -Works if: -- all keyboards are hotplugged through HAL, and/or -- the xorg.conf keyboard uses the kbd driver. - -Has no effect (i.e. busted keymaps) if: -- an evdev keyboard device has been specified in the xorg.conf. -- we don't have a device at startup and plug a device in after starting the - desktop environment. -- if the device we use isn't the first one reported by HAL. - -If HAL isn't set up, this patch is a noop. ---- - hw/xfree86/common/xf86Xinput.c | 31 +++++++++++++++++++++++++++++++ - 1 files changed, 31 insertions(+), 0 deletions(-) - -diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c -index 710e787..dacc3dc 100644 ---- a/hw/xfree86/common/xf86Xinput.c -+++ b/hw/xfree86/common/xf86Xinput.c -@@ -423,6 +423,37 @@ NewInputDeviceRequest (InputOption *options, DeviceIntPtr *pdev) - (!is_auto || xf86Info.autoEnableDevices)) - EnableDevice(dev); - -+ /* XXX: The VCK always starts with built-in defaults for keymap. These -+ * defaults are different to the evdev ones. When the first key is hit on -+ * an extension device, the keymap is copied into the VCK's and any -+ * changes made at runtime to the VCK map are lost. -+ * -+ * Assumption: if we have at least one evdev keyboard device, we can -+ * ignore kbd devices. Force a SwitchCoreKeyboard so the VCK has the same -+ * keymap as we do. -+ * -+ * Next time we hit a key, we don't change the map over anymore (see -+ * SwitchCoreKeyboard), and live happily ever after. -+ * Until we have 2 physical keyboards. Or the first real keyboard isn't -+ * actually the one we use. Oh well. -+ * -+ */ -+ if (dev->key) -+ { -+ InputInfoPtr info; -+ -+ /* Search if there is one other keyboard that uses evdev. */ -+ for (info = xf86InputDevs; info; info = info->next) -+ { -+ if (info != pInfo && info->dev && info->dev->key && -+ (strcmp(info->drv->driverName, "evdev") == 0)) -+ break; -+ } -+ -+ if (!info) -+ SwitchCoreKeyboard(dev); -+ } -+ - *pdev = dev; - return Success; - --- -1.5.5.1 - |