xserver: Branch 'xgl-0-0-1'
Tiago Vignatti
vignatti at kemper.freedesktop.org
Tue Nov 7 19:00:35 EET 2006
hw/xgl/glx/xglx.c | 29 ++++++++++++++++++++---------
hw/xgl/xgl.h | 3 +++
hw/xgl/xglinput.c | 30 +-----------------------------
3 files changed, 24 insertions(+), 38 deletions(-)
New commits:
diff-tree 7958dee1c60aadb36077fb4fa89d63f668759fb6 (from b096b49ff5b43be96d815ecaad27afafb0af0461)
Author: Tiago Vignatti <vignatti at c3sl.ufpr.br>
Date: Tue Nov 7 14:59:43 2006 -0200
Let xglxKeybProc responsable for the keyboard mapping. Xgl with evdev input is
fully functional using the libXevdev.
diff --git a/hw/xgl/glx/xglx.c b/hw/xgl/glx/xglx.c
index a955fb1..7e165b4 100644
--- a/hw/xgl/glx/xglx.c
+++ b/hw/xgl/glx/xglx.c
@@ -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);
diff --git a/hw/xgl/xgl.h b/hw/xgl/xgl.h
index c22c196..f5c3b85 100644
--- a/hw/xgl/xgl.h
+++ b/hw/xgl/xgl.h
@@ -515,6 +515,9 @@ extern char *kbdEvdevFile;
extern char *ptrEvdevFile;
void
+xglEvdevReadInput (void);
+
+void
xglWakeupHandler (pointer blockData,
int result,
pointer pReadMask);
diff --git a/hw/xgl/xglinput.c b/hw/xgl/xglinput.c
index c355d78..aec0300 100644
--- a/hw/xgl/xglinput.c
+++ b/hw/xgl/xglinput.c
@@ -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);
More information about the xorg-commit
mailing list