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