fix XEvIE build without XKB
Don't unconditionally play with XKB stuff in XEvIE.
This commit is contained in:
parent
985c34bf06
commit
f8a7a1e40c
24
Xext/xevie.c
24
Xext/xevie.c
|
@ -59,7 +59,9 @@ of the copyright holder.
|
||||||
|
|
||||||
#define NoSuchEvent 0x80000000
|
#define NoSuchEvent 0x80000000
|
||||||
|
|
||||||
|
#ifdef XKB
|
||||||
extern Bool noXkbExtension;
|
extern Bool noXkbExtension;
|
||||||
|
#endif
|
||||||
extern int xeviegrabState;
|
extern int xeviegrabState;
|
||||||
|
|
||||||
static int ProcDispatch (register ClientPtr client), SProcDispatch (register ClientPtr client);
|
static int ProcDispatch (register ClientPtr client), SProcDispatch (register ClientPtr client);
|
||||||
|
@ -201,12 +203,14 @@ int ProcStart (register ClientPtr client)
|
||||||
return BadAlloc;
|
return BadAlloc;
|
||||||
} else
|
} else
|
||||||
return BadAccess;
|
return BadAccess;
|
||||||
|
#ifdef XKB
|
||||||
if (!noXkbExtension) {
|
if (!noXkbExtension) {
|
||||||
if (!XevieStart()) {
|
if (!XevieStart()) {
|
||||||
DeleteCallback(&ClientStateCallback,XevieClientStateCallback,NULL);
|
DeleteCallback(&ClientStateCallback,XevieClientStateCallback,NULL);
|
||||||
return BadAlloc;
|
return BadAlloc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
xevieModifiersOn = FALSE;
|
xevieModifiersOn = FALSE;
|
||||||
|
|
||||||
|
@ -255,19 +259,23 @@ int ProcSend (register ClientPtr client)
|
||||||
case KeyPress:
|
case KeyPress:
|
||||||
case KeyRelease:
|
case KeyRelease:
|
||||||
xevieKBEventSent = 1;
|
xevieKBEventSent = 1;
|
||||||
if(noXkbExtension)
|
#ifdef XKB
|
||||||
CoreProcessKeyboardEvent (xE, xeviekb, 1);
|
if(!noXkbExtension)
|
||||||
else
|
|
||||||
doSendEvent(xE, inputInfo.keyboard);
|
doSendEvent(xE, inputInfo.keyboard);
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
CoreProcessKeyboardEvent (xE, xeviekb, 1);
|
||||||
break;
|
break;
|
||||||
case ButtonPress:
|
case ButtonPress:
|
||||||
case ButtonRelease:
|
case ButtonRelease:
|
||||||
case MotionNotify:
|
case MotionNotify:
|
||||||
xevieEventSent = 1;
|
xevieEventSent = 1;
|
||||||
if(noXkbExtension)
|
#ifdef XKB
|
||||||
CoreProcessPointerEvent(xE, xeviemouse, 1);
|
if(!noXkbExtension)
|
||||||
else
|
|
||||||
doSendEvent(xE, inputInfo.pointer);
|
doSendEvent(xE, inputInfo.pointer);
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
CoreProcessPointerEvent(xE, xeviemouse, 1);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -464,6 +472,7 @@ XevieKbdProcessInputProc(xEvent *xE, DeviceIntPtr dev, int count)
|
||||||
xE->u.keyButtonPointer.state = keyc->state | inputInfo.pointer->button->state;
|
xE->u.keyButtonPointer.state = keyc->state | inputInfo.pointer->button->state;
|
||||||
/* fix bug: sequence lost in Xlib */
|
/* fix bug: sequence lost in Xlib */
|
||||||
xE->u.u.sequenceNumber = clients[xevieClientIndex]->sequence;
|
xE->u.u.sequenceNumber = clients[xevieClientIndex]->sequence;
|
||||||
|
#ifdef XKB
|
||||||
/* fix for bug5092586 */
|
/* fix for bug5092586 */
|
||||||
if(!noXkbExtension) {
|
if(!noXkbExtension) {
|
||||||
switch(xE->u.u.type) {
|
switch(xE->u.u.type) {
|
||||||
|
@ -471,6 +480,7 @@ XevieKbdProcessInputProc(xEvent *xE, DeviceIntPtr dev, int count)
|
||||||
case KeyRelease: *kptr &= ~bit; break;
|
case KeyRelease: *kptr &= ~bit; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
keycq[keycqHead].time = xE->u.keyButtonPointer.time;
|
keycq[keycqHead].time = xE->u.keyButtonPointer.time;
|
||||||
memcpy(keycq[keycqHead].keyc, keyc, sizeof(KeyClassRec) - sizeof(KeyClassPtr));
|
memcpy(keycq[keycqHead].keyc, keyc, sizeof(KeyClassRec) - sizeof(KeyClassPtr));
|
||||||
memcpy(keycq[keycqHead].keyc->xkbInfo, keyc->xkbInfo, sizeof(XkbSrvInfoRec));
|
memcpy(keycq[keycqHead].keyc->xkbInfo, keyc->xkbInfo, sizeof(XkbSrvInfoRec));
|
||||||
|
@ -525,6 +535,7 @@ XevieEnd(int clientIndex)
|
||||||
{
|
{
|
||||||
if (!clientIndex || clientIndex == xevieClientIndex) {
|
if (!clientIndex || clientIndex == xevieClientIndex) {
|
||||||
|
|
||||||
|
#ifdef XKB
|
||||||
if(!noXkbExtension) {
|
if(!noXkbExtension) {
|
||||||
|
|
||||||
XevieRemove(inputInfo.keyboard,NULL);
|
XevieRemove(inputInfo.keyboard,NULL);
|
||||||
|
@ -540,6 +551,7 @@ XevieEnd(int clientIndex)
|
||||||
inputInfo.pointer->public.realInputProc = CoreProcessPointerEvent;
|
inputInfo.pointer->public.realInputProc = CoreProcessPointerEvent;
|
||||||
XkbSetExtension(inputInfo.pointer,ProcessPointerEvent);
|
XkbSetExtension(inputInfo.pointer,ProcessPointerEvent);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
xevieFlag = 0;
|
xevieFlag = 0;
|
||||||
xevieClientIndex = 0;
|
xevieClientIndex = 0;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user