Hello all,

I would like to ask you to apply attached patch to both master and
server-1.7-branches.

The patch exports four functions, AllocDevicePair, GetPointerEvents,
GetKeyboardEvents and generate_modkeymap, from Xorg. Those functions
are currently used by TigerVNC libvnc.so module which doesn't use
standard XInput infrastructure but uses same approach like XTest
input devices.

Main reason why libvnc.so doesn't use standard XInput functions, like
other input drivers, is that libvnc.so file contains two modules, VNC
extension and VNC input driver. Current Xorg loader is not able to
load two modules from one file.

Another reason is that we (TigerVNC project) would like to share input
related code between libvnc.so module and Xvnc, standalone X server.
Standalone X server (similar to Xnest, Xvfb) can't use xf86* input
driver infrastructure because it is only part of Xorg.

Regards, Adam

-- 
Adam Tkac, Red Hat, Inc.
>From 53c0a61c7047d1c3bb27715b6e2e374a9e3fc221 Mon Sep 17 00:00:00 2001
From: Adam Tkac <[email protected]>
Date: Mon, 22 Mar 2010 13:59:17 +0100
Subject: [PATCH] dix: Export AllocDevicePair GetPointerEvents, 
GetKeyboardEvents and
 generate_modkeymap functions from Xorg.

Those functions are used by TigerVNC libvnc.so module which doesn't
use standard XInput infrastructure but uses same functions like,
for example, XTest devices.

Signed-off-by: Adam Tkac <[email protected]>
---
 include/input.h |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/input.h b/include/input.h
index 8561308..63f981e 100644
--- a/include/input.h
+++ b/include/input.h
@@ -432,7 +432,7 @@ extern void CreateClassesChangedEvent(EventListPtr event,
                                       DeviceIntPtr master,
                                       DeviceIntPtr slave,
                                       int type);
-extern int GetPointerEvents(
+extern _X_EXPORT int GetPointerEvents(
     EventListPtr events,
     DeviceIntPtr pDev,
     int type,
@@ -442,7 +442,7 @@ extern int GetPointerEvents(
     int num_valuators,
     int *valuators);
 
-extern int GetKeyboardEvents(
+extern _X_EXPORT int GetKeyboardEvents(
     EventListPtr events,
     DeviceIntPtr pDev,
     int type,
@@ -493,7 +493,7 @@ extern int AttachDevice(ClientPtr client,
 extern _X_EXPORT DeviceIntPtr GetPairedDevice(DeviceIntPtr kbd);
 extern DeviceIntPtr GetMaster(DeviceIntPtr dev, int type);
 
-extern int AllocDevicePair(ClientPtr client,
+extern _X_EXPORT int AllocDevicePair(ClientPtr client,
                              char* name,
                              DeviceIntPtr* ptr,
                              DeviceIntPtr* keybd,
@@ -505,7 +505,7 @@ extern void DeepCopyDeviceClasses(DeviceIntPtr from,
                                   DeviceChangedEvent *dce);
 
 /* Helper functions. */
-extern int generate_modkeymap(ClientPtr client, DeviceIntPtr dev,
+extern _X_EXPORT int generate_modkeymap(ClientPtr client, DeviceIntPtr dev,
                               KeyCode **modkeymap, int *max_keys_per_mod);
 extern int change_modmap(ClientPtr client, DeviceIntPtr dev, KeyCode *map,
                          int max_keys_per_mod);
-- 
1.7.0.1

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to