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