[arch-commits] CVS update of extra/x11/xorg-server (2 files)
Alexander Baldeck
alexander at archlinux.org
Fri Nov 16 13:12:10 UTC 2007
Date: Friday, November 16, 2007 @ 08:12:10
Author: alexander
Path: /home/cvs-extra/extra/x11/xorg-server
Added: xorg-server-1.4-mapping-changes-for-all.diff (1.1)
Modified: PKGBUILD (1.39 -> 1.40)
* update to mesa 7.0.2 release
* fixes FS#8539
----------------------------------------------+
PKGBUILD | 12 +
xorg-server-1.4-mapping-changes-for-all.diff | 155 +++++++++++++++++++++++++
2 files changed, 163 insertions(+), 4 deletions(-)
Index: extra/x11/xorg-server/PKGBUILD
diff -u extra/x11/xorg-server/PKGBUILD:1.39 extra/x11/xorg-server/PKGBUILD:1.40
--- extra/x11/xorg-server/PKGBUILD:1.39 Wed Nov 7 07:08:41 2007
+++ extra/x11/xorg-server/PKGBUILD Fri Nov 16 08:12:09 2007
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD,v 1.39 2007/11/07 12:08:41 alexander Exp $
+# $Id: PKGBUILD,v 1.40 2007/11/16 13:12:09 alexander Exp $
# Maintainer: Alexander Baldeck <kth5 at archlinux.org>
# Contributor: Jan de Groot <jgc at archlinux.org>
pkgname=xorg-server
pkgver=1.4
-pkgrel=5
-_mesaver=7.0.1
+pkgrel=6
+_mesaver=7.0.2
pkgdesc="X.Org X servers"
arch=('i686' 'x86_64')
url="http://xorg.freedesktop.org"
@@ -31,7 +31,8 @@
xorg-server-1.2.0-defaultdpi.patch
xorg-x11-server-1.1.1-no-scanpci.patch
xserver-1.3.0-newglx-offscreen-pixmaps.patch
- xorg-server-1.4-kbd-leds-fix.patch)
+ xorg-server-1.4-kbd-leds-fix.patch
+ xorg-server-1.4-mapping-changes-for-all.diff)
build() {
cd ${startdir}/src/${pkgname}-${pkgver}
@@ -45,10 +46,13 @@
patch -Np1 -i ${startdir}/src/xorg-x11-server-1.1.1-no-scanpci.patch || return 1
patch -Np1 -i ${startdir}/src/xserver-1.3.0-newglx-offscreen-pixmaps.patch || return 1
patch -Np1 -i ${startdir}/src/xorg-server-1.4-kbd-leds-fix.patch || return 1
+ patch -Np1 -i ${startdir}/src/xorg-server-1.4-mapping-changes-for-all.diff || return 1
# Own patches
patch -Np1 -i ${startdir}/src/xorg-server-1.2.0-defaultdpi.patch || return 1
+ GL/symlink-mesa.sh ../Mesa-7.0.2/ .
+
aclocal
autoconf
automake --add-missing
Index: extra/x11/xorg-server/xorg-server-1.4-mapping-changes-for-all.diff
diff -u /dev/null extra/x11/xorg-server/xorg-server-1.4-mapping-changes-for-all.diff:1.1
--- /dev/null Fri Nov 16 08:12:10 2007
+++ extra/x11/xorg-server/xorg-server-1.4-mapping-changes-for-all.diff Fri Nov 16 08:12:10 2007
@@ -0,0 +1,155 @@
+commit 27ad5d74c20f01516a1bff73be283f8982fcf0fe
+Author: Daniel Stone <daniel at fooishbar.org>
+Date: Sun Sep 23 17:17:03 2007 +0300
+
+ Input: Generate XKB mapping changes for all core-sending devices (bug #12523)
+
+ When we change the mapping on a core device, make sure we propagate this
+ through to XKB for all extended devices as well.
+
+diff --git a/Xi/exevents.c b/Xi/exevents.c
+index fe297ab..377311e 100644
+--- a/Xi/exevents.c
++++ b/Xi/exevents.c
+@@ -73,6 +73,10 @@ SOFTWARE.
+ #include "dixgrabs.h" /* CreateGrab() */
+ #include "scrnintstr.h"
+
++#ifdef XKB
++#include "xkbsrv.h"
++#endif
++
+ #define WID(w) ((w) ? ((w)->drawable.id) : 0)
+ #define AllModifiersMask ( \
+ ShiftMask | LockMask | ControlMask | Mod1Mask | Mod2Mask | \
+@@ -942,7 +946,7 @@ SetModifierMapping(ClientPtr client, DeviceIntPtr dev, int len, int rlen,
+ }
+
+ void
+-SendDeviceMappingNotify(CARD8 request,
++SendDeviceMappingNotify(ClientPtr client, CARD8 request,
+ KeyCode firstKeyCode, CARD8 count, DeviceIntPtr dev)
+ {
+ xEvent event;
+@@ -957,6 +961,11 @@ SendDeviceMappingNotify(CARD8 request,
+ ev->count = count;
+ }
+
++#ifdef XKB
++ if (request == MappingKeyboard || request == MappingModifier)
++ XkbApplyMappingChange(dev, request, firstKeyCode, count, client);
++#endif
++
+ SendEventToAllWindows(dev, DeviceMappingNotifyMask, (xEvent *) ev, 1);
+ }
+
+@@ -992,7 +1001,7 @@ ChangeKeyMapping(ClientPtr client,
+ keysyms.map = map;
+ if (!SetKeySymsMap(&k->curKeySyms, &keysyms))
+ return BadAlloc;
+- SendDeviceMappingNotify(MappingKeyboard, firstKeyCode, keyCodes, dev);
++ SendDeviceMappingNotify(client, MappingKeyboard, firstKeyCode, keyCodes, dev);
+ return client->noClientException;
+ }
+
+diff --git a/Xi/setbmap.c b/Xi/setbmap.c
+index bdfa513..1f5970d 100644
+--- a/Xi/setbmap.c
++++ b/Xi/setbmap.c
+@@ -134,7 +134,7 @@ ProcXSetDeviceButtonMapping(ClientPtr client)
+ }
+
+ if (ret != MappingBusy)
+- SendDeviceMappingNotify(MappingPointer, 0, 0, dev);
++ SendDeviceMappingNotify(client, MappingPointer, 0, 0, dev);
+ return Success;
+ }
+
+diff --git a/Xi/setmmap.c b/Xi/setmmap.c
+index 0078499..e30213e 100644
+--- a/Xi/setmmap.c
++++ b/Xi/setmmap.c
+@@ -122,7 +122,7 @@ ProcXSetDeviceModifierMapping(ClientPtr client)
+ if (ret == MappingSuccess || ret == MappingBusy || ret == MappingFailed) {
+ rep.success = ret;
+ if (ret == MappingSuccess)
+- SendDeviceMappingNotify(MappingModifier, 0, 0, dev);
++ SendDeviceMappingNotify(client, MappingModifier, 0, 0, dev);
+ WriteReplyToClient(client, sizeof(xSetDeviceModifierMappingReply),
+ &rep);
+ } else {
+diff --git a/dix/devices.c b/dix/devices.c
+index 9f3c576..e05444e 100644
+--- a/dix/devices.c
++++ b/dix/devices.c
+@@ -1208,10 +1208,9 @@ SendMappingNotify(unsigned request, unsigned firstKeyCode, unsigned count,
+ }
+ #ifdef XKB
+ if (!noXkbExtension &&
+- ((request == MappingKeyboard) || (request == MappingModifier))) {
+- XkbApplyMappingChange(inputInfo.keyboard,request,firstKeyCode,count,
+- client);
+- }
++ ((request == MappingKeyboard) || (request == MappingModifier)))
++ XkbApplyMappingChange(inputInfo.keyboard, request, firstKeyCode, count,
++ client);
+ #endif
+
+ /* 0 is the server client */
+@@ -1359,6 +1358,7 @@ int
+ ProcSetModifierMapping(ClientPtr client)
+ {
+ xSetModifierMappingReply rep;
++ DeviceIntPtr dev;
+ REQUEST(xSetModifierMappingReq);
+
+ REQUEST_AT_LEAST_SIZE(xSetModifierMappingReq);
+@@ -1374,8 +1374,10 @@ ProcSetModifierMapping(ClientPtr client)
+ rep.success = DoSetModifierMapping(client, (KeyCode *)&stuff[1],
+ stuff->numKeyPerModifier);
+
+- /* FIXME: Send mapping notifies for all the extended devices as well. */
+ SendMappingNotify(MappingModifier, 0, 0, client);
++ for (dev = inputInfo.devices; dev; dev = dev->next)
++ if (dev->key && dev->coreEvents)
++ SendDeviceMappingNotify(client, MappingModifier, 0, 0, dev);
+ WriteReplyToClient(client, sizeof(xSetModifierMappingReply), &rep);
+ return client->noClientException;
+ }
+@@ -1438,16 +1440,19 @@ ProcChangeKeyboardMapping(ClientPtr client)
+ keysyms.maxKeyCode = stuff->firstKeyCode + stuff->keyCodes - 1;
+ keysyms.mapWidth = stuff->keySymsPerKeyCode;
+ keysyms.map = (KeySym *)&stuff[1];
+- for (pDev = inputInfo.devices; pDev; pDev = pDev->next) {
+- if ((pDev->coreEvents || pDev == inputInfo.keyboard) && pDev->key) {
++ for (pDev = inputInfo.devices; pDev; pDev = pDev->next)
++ if ((pDev->coreEvents || pDev == inputInfo.keyboard) && pDev->key)
+ if (!SetKeySymsMap(&pDev->key->curKeySyms, &keysyms))
+ return BadAlloc;
+- }
+- }
+
+- /* FIXME: Send mapping notifies for all the extended devices as well. */
+ SendMappingNotify(MappingKeyboard, stuff->firstKeyCode, stuff->keyCodes,
+ client);
++ for (pDev = inputInfo.devices; pDev; pDev = pDev->next)
++ if (pDev->key && pDev->coreEvents)
++ SendDeviceMappingNotify(client, MappingKeyboard,
++ stuff->firstKeyCode, stuff->keyCodes,
++ pDev);
++
+ return client->noClientException;
+ }
+
+diff --git a/include/exevents.h b/include/exevents.h
+index 69d4abc..cf7d71a 100644
+--- a/include/exevents.h
++++ b/include/exevents.h
+@@ -129,6 +129,7 @@ extern int SetModifierMapping(
+ KeyClassPtr * /* k */);
+
+ extern void SendDeviceMappingNotify(
++ ClientPtr /* client, */,
+ CARD8 /* request, */,
+ KeyCode /* firstKeyCode */,
+ CARD8 /* count */,
More information about the arch-commits
mailing list