[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