* Tue Aug 05 2008 Peter Hutterer <peter.hutterer@redhat.com> 1.4.99.906-5
- xserver-1.5.0-xkb-fix-ProcXkbSetXYZ-to-work-on-all.patch: force xkb requests to apply to all extension devices. - drop call-SwitchCoreKeyboard.patch - xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch: force SwitchCoreKeyboard for evdev devices to push device keymap into core device.
This commit is contained in:
parent
b1cd19cffe
commit
3262bac3e6
@ -19,7 +19,7 @@
|
|||||||
Summary: X.Org X11 X server
|
Summary: X.Org X11 X server
|
||||||
Name: xorg-x11-server
|
Name: xorg-x11-server
|
||||||
Version: 1.4.99.906
|
Version: 1.4.99.906
|
||||||
Release: 4%{?dist}
|
Release: 5%{?dist}
|
||||||
URL: http://www.x.org
|
URL: http://www.x.org
|
||||||
License: MIT
|
License: MIT
|
||||||
Group: User Interface/X
|
Group: User Interface/X
|
||||||
@ -63,7 +63,8 @@ Patch5007: xserver-1.5.0-bad-fbdev-thats-mine.patch
|
|||||||
Patch5011: xserver-1.4.99-endian.patch
|
Patch5011: xserver-1.4.99-endian.patch
|
||||||
|
|
||||||
# evdev keyboard map fix
|
# evdev keyboard map fix
|
||||||
# Patch5012: xserver-1.5.0-call-SwitchCoreKeyboard-for-first-device.patch
|
Patch5013: xserver-1.5.0-xkb-fix-ProcXkbSetXYZ-to-work-on-all.patch
|
||||||
|
Patch5014: xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch
|
||||||
|
|
||||||
%define moduledir %{_libdir}/xorg/modules
|
%define moduledir %{_libdir}/xorg/modules
|
||||||
%define drimoduledir %{_libdir}/dri
|
%define drimoduledir %{_libdir}/dri
|
||||||
@ -488,10 +489,21 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Aug 05 2008 Peter Hutterer <peter.hutterer@redhat.com> 1.4.99.906-5
|
||||||
|
- xserver-1.5.0-xkb-fix-ProcXkbSetXYZ-to-work-on-all.patch: force xkb requests
|
||||||
|
to apply to all extension devices.
|
||||||
|
- drop call-SwitchCoreKeyboard.patch
|
||||||
|
- xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch: force
|
||||||
|
SwitchCoreKeyboard for evdev devices to push device keymap into core device.
|
||||||
|
|
||||||
* Mon Aug 04 2008 Adam Jackson <ajax@redhat.com> 1.4.99.906-4
|
* Mon Aug 04 2008 Adam Jackson <ajax@redhat.com> 1.4.99.906-4
|
||||||
- 10-x11-keymap.fdi, fedora-setup-keyboard: Attempt to read keyboard settings
|
- 10-x11-keymap.fdi, fedora-setup-keyboard: Attempt to read keyboard settings
|
||||||
from /etc/sysconfig/keyboard and stuff them into hal.
|
from /etc/sysconfig/keyboard and stuff them into hal.
|
||||||
|
|
||||||
|
* Mon Aug 04 2008 Peter Hutterer <peter.hutterer@redhat.com> 1.4.99.906-3
|
||||||
|
- xserver-1.5.0-call-SwitchCoreKeyboard-for-first-device.patch: force a keymap
|
||||||
|
switch to push the device keymap into the core device.
|
||||||
|
|
||||||
* Thu Jul 31 2008 Adam Jackson <ajax@redhat.com> 1.4.99.906-2
|
* Thu Jul 31 2008 Adam Jackson <ajax@redhat.com> 1.4.99.906-2
|
||||||
- Drop the evdev keyboarding patch.
|
- Drop the evdev keyboarding patch.
|
||||||
|
|
||||||
|
@ -1,61 +0,0 @@
|
|||||||
From b2943b507261d1c68a6266b090ec44495d7796a1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
|
||||||
Date: Mon, 28 Jul 2008 12:17:17 +0930
|
|
||||||
Subject: [PATCH] xfree86: call SwitchCoreKeyboard for first physical device.
|
|
||||||
|
|
||||||
The VCK's keymap is different to the (evdev) keyboard's keymap. Any changes to
|
|
||||||
the VCK are lost when the first key is pressed (see X.Org Bug 16364). By
|
|
||||||
calling SwitchCoreKeyboard for the first hotplugged keyboard, the keymap is
|
|
||||||
toggled already when the first apps start.
|
|
||||||
|
|
||||||
This fixes GNOME, which stores the keycode instead of the keysym.
|
|
||||||
Fixes xmodmap, etc. settings in xinitrc or otherwise set before the first key
|
|
||||||
press.
|
|
||||||
|
|
||||||
This breaks if the first hotplugged keyboard is not the actual keyboard the
|
|
||||||
user wants to use.
|
|
||||||
---
|
|
||||||
hw/xfree86/common/xf86Xinput.c | 27 +++++++++++++++++++++++++++
|
|
||||||
1 files changed, 27 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
|
|
||||||
index 710e787..fe08626 100644
|
|
||||||
--- a/hw/xfree86/common/xf86Xinput.c
|
|
||||||
+++ b/hw/xfree86/common/xf86Xinput.c
|
|
||||||
@@ -423,6 +423,33 @@ 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.
|
|
||||||
+ *
|
|
||||||
+ * If this is the first real keyboard to activate, 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)
|
|
||||||
+ {
|
|
||||||
+ DeviceIntPtr it;
|
|
||||||
+
|
|
||||||
+ for (it = inputInfo.keyboard->next; it; it = it->next)
|
|
||||||
+ {
|
|
||||||
+ if (it->key && it != dev)
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!it) /* no other keyboard found */
|
|
||||||
+ SwitchCoreKeyboard(dev);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
*pdev = dev;
|
|
||||||
return Success;
|
|
||||||
|
|
||||||
--
|
|
||||||
1.5.5.1
|
|
||||||
|
|
69
xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch
Normal file
69
xserver-1.5.0-force-SwitchCoreKeyboard-for-evdev.patch
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
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
|
||||||
|
|
2245
xserver-1.5.0-xkb-fix-ProcXkbSetXYZ-to-work-on-all.patch
Normal file
2245
xserver-1.5.0-xkb-fix-ProcXkbSetXYZ-to-work-on-all.patch
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user