From ba547d4f6a2707f51f0d826389d2d418fb62367a Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 12 Jan 2007 14:42:02 +1030 Subject: [PATCH] mi: Quick fix to stop segfault on non-core keyboards. --- dix/cursor.c | 1 - mi/mieq.c | 8 ++++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/dix/cursor.c b/dix/cursor.c index b58a7bf81..cf515c11a 100644 --- a/dix/cursor.c +++ b/dix/cursor.c @@ -117,7 +117,6 @@ FreeCursor(pointer value, XID cid) ScreenPtr pscr; DeviceIntPtr pDev; - MPXDBG("freecursor refcount %d\n", pCurs->refcnt); if ( --pCurs->refcnt != 0) return(Success); diff --git a/mi/mieq.c b/mi/mieq.c index 0744e6c2c..b336277d4 100644 --- a/mi/mieq.c +++ b/mi/mieq.c @@ -231,6 +231,14 @@ mieqProcessInputEvents() dev = e->pDev; } + /* FIXME: Keyboard extension devices do not have devPrivates + * initialized, resulting in a segfault in XkbHandleActions. */ + if (e->event[0].u.u.type == DeviceKeyPress || + e->event[0].u.u.type == DeviceKeyRelease || + e->event[0].u.u.type == KeyPress || + e->event[0].u.u.type == KeyRelease) + e->pDev = dev = inputInfo.keyboard; + /* MPX devices send both core and Xi events. * Use dev to get the correct processing function but supply * e->pDev to pass the correct device