Let xglxKeybProc responsable for the keyboard mapping. Xgl with evdev input is

fully functional using the libXevdev.
This commit is contained in:
Tiago Vignatti 2006-11-07 14:59:43 -02:00
parent b096b49ff5
commit 7958dee1c6
3 changed files with 24 additions and 38 deletions

View file

@ -1294,6 +1294,9 @@ xglxWakeupHandler (pointer blockData,
int result,
pointer pReadMask)
{
#ifdef XEVDEV
if (!useEvdev)
#endif
xglxEnqueueEvents ();
}
@ -1533,9 +1536,25 @@ xglxKeybdProc (DeviceIntPtr pDevice,
} break;
case DEVICE_ON:
pDev->on = TRUE;
#ifdef XEVDEV
/* When evdev input is set the events are grabbed per default.
* EvdevGrabKeyboard is need to be changed to XGrabKeyboard
* xlib function thus Xgl will be able to choose if want or not
* be grabbed. */
if (useEvdev)
EvdevGrabKeyboard ();
#endif
break;
case DEVICE_OFF:
case DEVICE_CLOSE:
#ifdef XEVDEV
if (useEvdev)
EvdevUngrabKeyboard ();
#endif
pDev->on = FALSE;
break;
}
@ -1604,15 +1623,7 @@ xglxInitInput (int argc,
#ifdef XEVDEV
if (useEvdev)
{
xglInitInput (argc, argv);
RegisterBlockAndWakeupHandlers (xglxBlockHandler,
xglWakeupHandler,
NULL);
return;
}
OpenEvdevInput (kbdEvdevFile, ptrEvdevFile, xglEvdevReadInput);
#endif
pPointer = AddInputDevice (xglxPointerProc, TRUE);

View file

@ -514,6 +514,9 @@ extern Bool useEvdev;
extern char *kbdEvdevFile;
extern char *ptrEvdevFile;
void
xglEvdevReadInput (void);
void
xglWakeupHandler (pointer blockData,
int result,

View file

@ -75,7 +75,7 @@ static int EventToXserver[] = {
248
};
static void
void
xglEvdevReadInput (void)
{
struct input_event ie;
@ -368,13 +368,6 @@ xglKeybdProc (DeviceIntPtr pDevice,
if (pDev != LookupKeyboardDevice ())
return !Success;
#ifdef XEVDEV
if (useEvdev)
{
EvdevInit (pDevice);
return Success;
}
#endif
ret = InitKeyboardDeviceStruct (pDev,
&xglKeySyms,
xglModMap,
@ -386,25 +379,9 @@ xglKeybdProc (DeviceIntPtr pDevice,
break;
case DEVICE_ON:
pDev->on = TRUE;
#ifdef XEVDEV
/* When evdev input is set the events are grabbed per default.
* EvdevGrabKeyboard is need to be changed to XGrabKeyboard
* xlib function thus Xgl will be able to choose if want or not
* be grabbed. */
if (useEvdev)
EvdevGrabKeyboard ();
#endif
break;
case DEVICE_OFF:
case DEVICE_CLOSE:
#ifdef XEVDEV
if (useEvdev)
EvdevUngrabKeyboard ();
#endif
pDev->on = FALSE;
break;
}
@ -417,11 +394,6 @@ xglInitInput (int argc, char **argv)
{
DeviceIntPtr pKeyboard, pPointer;
#ifdef XEVDEV
if (useEvdev)
OpenEvdevInput (kbdEvdevFile, ptrEvdevFile, xglEvdevReadInput);
#endif
pPointer = AddInputDevice (xglMouseProc, TRUE);
pKeyboard = AddInputDevice (xglKeybdProc, TRUE);