mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-05-07 12:08:18 +02:00
Let xglxKeybProc responsable for the keyboard mapping. Xgl with evdev input is
fully functional using the libXevdev.
This commit is contained in:
parent
b096b49ff5
commit
7958dee1c6
3 changed files with 24 additions and 38 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -514,6 +514,9 @@ extern Bool useEvdev;
|
|||
extern char *kbdEvdevFile;
|
||||
extern char *ptrEvdevFile;
|
||||
|
||||
void
|
||||
xglEvdevReadInput (void);
|
||||
|
||||
void
|
||||
xglWakeupHandler (pointer blockData,
|
||||
int result,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue