From: Adam Tkac Date: Wed, 26 Mar 2008 17:13:33 +0000 (+0000) Subject: Initialize input devices in XserverDesktop constructor and update X-Git-Tag: v0.0.90~384^2~41 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=fbeb0ed67e443a55c55971d8f87b55fe1f6cef3e;p=tigervnc.git 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 7071b714..6dfe3d5c 100644 --- a/unix/xserver/hw/vnc/XserverDesktop.cc +++ b/unix/xserver/hw/vnc/XserverDesktop.cc @@ -56,6 +56,12 @@ extern char *display; #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 @@ XserverDesktop::XserverDesktop(ScreenPtr pScreen_, 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 @@ static int vfbMouseProc(DeviceIntPtr pDevice, int onoff) 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 42ad72db..25847a66 100644 --- a/unix/xserver/hw/vnc/xvnc.cc +++ b/unix/xserver/hw/vnc/xvnc.cc @@ -1251,11 +1251,5 @@ void ProcessInputEvents() 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 (); }