Initialize input devices in XserverDesktop constructor and update
InitPointerDeviceStruct and mieqInit parameters.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/branches/1.5-xserver@2448 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/unix/xserver/hw/vnc/XserverDesktop.cc b/unix/xserver/hw/vnc/XserverDesktop.cc
index 7071b71..6dfe3d5 100644
--- a/unix/xserver/hw/vnc/XserverDesktop.cc
+++ b/unix/xserver/hw/vnc/XserverDesktop.cc
@@ -56,6 +56,12 @@
 #undef class
 }
 
+DeviceIntPtr vncKeyboardDevice = NULL;
+DeviceIntPtr vncPointerDevice = NULL;
+
+static int vfbKeybdProc(DeviceIntPtr pDevice, int onoff);
+static int vfbMouseProc(DeviceIntPtr pDevice, int onoff);
+
 using namespace rfb;
 using namespace network;
 
@@ -202,6 +208,16 @@
 
   if (httpListener)
     httpServer = new FileHTTPServer(this);
+
+  if (vncKeyboardDevice == NULL) {
+    vncKeyboardDevice = AddInputDevice(vfbKeybdProc, TRUE);
+    RegisterKeyboardDevice(vncKeyboardDevice);
+  }
+
+  if (vncPointerDevice == NULL) {
+    vncPointerDevice = AddInputDevice(vfbMouseProc, TRUE);
+    RegisterPointerDevice(vncPointerDevice);
+  }
 }
 
 XserverDesktop::~XserverDesktop()
@@ -1335,8 +1351,8 @@
     map[3] = 3;
     map[4] = 4;
     map[5] = 5;
-    InitPointerDeviceStruct(pDev, map, 5, miPointerGetMotionEvents,
-                            (PtrCtrlProcPtr)NoopDDA, miPointerGetMotionBufferSize());
+    InitPointerDeviceStruct(pDev, map, 5, GetMotionHistory,
+                            (PtrCtrlProcPtr)NoopDDA, GetMotionHistorySize(), 2);
     break;
 
   case DEVICE_ON:
diff --git a/unix/xserver/hw/vnc/xvnc.cc b/unix/xserver/hw/vnc/xvnc.cc
index 42ad72d..25847a6 100644
--- a/unix/xserver/hw/vnc/xvnc.cc
+++ b/unix/xserver/hw/vnc/xvnc.cc
@@ -1251,11 +1251,5 @@
 
 void InitInput(int argc, char *argv[])
 {
-  DeviceIntPtr p, k;
-  p = AddInputDevice(vfbMouseProc, TRUE);
-  k = AddInputDevice(vfbKeybdProc, TRUE);
-  RegisterPointerDevice(p);
-  RegisterKeyboardDevice(k);
-  miRegisterPointerDevice(screenInfo.screens[0], p);
-  (void)mieqInit ((DevicePtr)k, (DevicePtr)p);
+  mieqInit ();
 }