[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'debian-unstable'



 debian/changelog               |    8 +++++++-
 dix/getevents.c                |    5 ++++-
 hw/xfree86/common/xf86Helper.c |   14 +++++++++-----
 3 files changed, 20 insertions(+), 7 deletions(-)

New commits:
commit 2edac82f57463811a13a3538c92ba4cd201f6965
Author: Brice Goglin <bgoglin@debian.org>
Date:   Fri Jul 18 00:09:22 2008 +0200

    update changelog for cherry-picked patches

diff --git a/debian/changelog b/debian/changelog
index 12c89dd..ddb614a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,15 @@
 xorg-server (2:1.4.2-2) UNRELEASED; urgency=low
 
+  [ Julien Cristau ]
   * GLX: zero the buffer used in __glXDisp_GetVisualConfigs (backport from
     upstream).
 
- -- Julien Cristau <jcristau@debian.org>  Thu, 17 Jul 2008 16:22:04 +0200
+  [ Brice Goglin ]
+  * Cherry-pick various patches from upstream:
+    - Fix incorrect test regarding keyboard map.
+    - xfree86: append, not prepent, new input devices to xf86InputDevs.
+
+ -- Brice Goglin <bgoglin@debian.org>  Thu, 17 Jul 2008 23:22:27 +0200
 
 xorg-server (2:1.4.2-1) unstable; urgency=low
 

commit f1dab0b3aef8b38b1046f9a48dc327eb6d33bc0a
Author: Ander Conselvan de Oliveira <ander@mandriva.com.br>
Date:   Wed Jul 9 10:44:19 2008 -0300

    Fix incorrect test regarding keyboard map.
    
    In the map stored in each keyboard device, the first line refers to minimum
    keycode, i.e., the 0th line refers to keycode 8. When not using XKB the wrong
    test caused some keys to be interpreted as locks ('m' for instance). The had
    to be pressed twice to generate both KeyPress and KeyRelease events.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

diff --git a/dix/getevents.c b/dix/getevents.c
index c96ee68..b1376ab 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -406,9 +406,12 @@ GetKeyboardValuatorEvents(xEvent *events, DeviceIntPtr pDev, int type,
     int numEvents = 0;
     CARD32 ms = 0;
     KeySym *map = pDev->key->curKeySyms.map;
-    KeySym sym = map[key_code * pDev->key->curKeySyms.mapWidth];
+    KeySym sym;
     deviceKeyButtonPointer *kbp = NULL;
 
+    sym = map[(key_code - pDev->key->curKeySyms.minKeyCode)
+              * pDev->key->curKeySyms.mapWidth];
+
     if (!events)
         return 0;
 

commit 62f0f0f725d31588f22d5444aac276dc282ce1c6
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 14 10:20:11 2008 +0930

    xfree86: append, not prepent, new input devices to xf86InputDevs.
    
    If devices are prepended to the list, their wake-up order on resume is not the
    same as the original initialisation order. Hot-plugged devices, originally
    inited last, are re-enabled before the xorg.conf devices and in some cases may
    steal the device files. Result: we have different devices before and after
    suspend/resume.
    
    RedHat Bug 439386 <https://bugzilla.redhat.com/show_bug.cgi?id=439386>

diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
index 4636af4..7adac73 100644
--- a/hw/xfree86/common/xf86Helper.c
+++ b/hw/xfree86/common/xf86Helper.c
@@ -326,12 +326,11 @@ xf86AllocateScrnInfoPrivateIndex(void)
     return idx;
 }
 
-/* Allocate a new InputInfoRec and add it to the head xf86InputDevs. */
-
+/* Allocate a new InputInfoRec and append it to the tail of xf86InputDevs. */
 _X_EXPORT InputInfoPtr
 xf86AllocateInput(InputDriverPtr drv, int flags)
 {
-    InputInfoPtr new;
+    InputInfoPtr new, *prev = NULL;
 
     if (!(new = xcalloc(sizeof(InputInfoRec), 1)))
 	return NULL;
@@ -339,8 +338,13 @@ xf86AllocateInput(InputDriverPtr drv, int flags)
     new->drv = drv;
     drv->refCount++;
     new->module = DuplicateModule(drv->module, NULL);
-    new->next = xf86InputDevs;
-    xf86InputDevs = new;
+
+    for (prev = &xf86InputDevs; *prev; prev = &(*prev)->next)
+        ;
+
+    *prev = new;
+    new->next = NULL;
+
     return new;
 }
 


Reply to: