Up arrow key not working
Donnie Berkholz
dberkholz at gentoo.org
Thu Nov 13 10:35:15 PST 2008
On 05:25 Thu 13 Nov , Robin Cook wrote:
> Since upgrading the up arrow key has not been working on my system and I
> am unable to figure out how to fix it. When I press the up arrow key
> it causes the gnome snapshot app to open.
Try this xorg-server patch from Peter Hutterer that is in Fedora but not
in the 1.5 branch that fixes the problem.
--
Thanks,
Donnie
Donnie Berkholz
Developer, Gentoo Linux
Blog: http://dberkholz.wordpress.com
-------------- next part --------------
From 638cab7e1dc3711f7fb04155bcdabf4b8895cc5e Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20081113/96574b1c/attachment.pgp>
More information about the xorg
mailing list