From: Peter Hutterer <[EMAIL PROTECTED]>

Reported by Magnus Kessler.

Signed-off-by: Peter Hutterer <[EMAIL PROTECTED]>
---
 xkb/xkbEvents.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/xkb/xkbEvents.c b/xkb/xkbEvents.c
index 9d8ec0d..4d3debb 100644
--- a/xkb/xkbEvents.c
+++ b/xkb/xkbEvents.c
@@ -826,7 +826,8 @@ XkbSrvInfoPtr       xkbi;
             pXDev = inputInfo.keyboard;
     }
 
-    xkbi= pXDev->key->xkbInfo;
+    xkbi= (pXDev->key) ? pXDev->key->xkbInfo : NULL;
+
     if ( pClient->xkbClientFlags & _XkbClientInitialized ) {
        if ((xkbDebugFlags&0x10)&&
                ((xE[0].u.u.type==KeyPress)||(xE[0].u.u.type==KeyRelease)||
@@ -848,6 +849,10 @@ XkbSrvInfoPtr      xkbi;
                (_XkbIsReleaseEvent(xE[0].u.u.type)) ) {
            return False;
        }
+
+        if (!xkbi)
+            return True;
+
        if ((pXDev->deviceGrab.grab != NullGrab) 
                 && pXDev->deviceGrab.fromPassiveGrab &&
            ((xE[0].u.u.type==KeyPress)||(xE[0].u.u.type==KeyRelease)||
@@ -891,6 +896,9 @@ XkbSrvInfoPtr       xkbi;
     else {
        register CARD8  type;
 
+        if (!xkbi)
+            return True;
+
        for (i=0;i<nEvents;i++) {
            type= xE[i].u.u.type;
            if ((xkbDebugFlags&0x4)&&
-- 
1.6.0.3

_______________________________________________
xorg mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/xorg

Reply via email to