summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wcmConfig.c5
-rw-r--r--src/xf86Wacom.c9
2 files changed, 13 insertions, 1 deletions
diff --git a/src/wcmConfig.c b/src/wcmConfig.c
index d19b9b4..9a3c8d7 100644
--- a/src/wcmConfig.c
+++ b/src/wcmConfig.c
@@ -634,7 +634,10 @@ InputDriverRec WACOM =
wcmUninit, /* un-init */
NULL, /* module */
#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
- default_options
+ default_options,
+#endif
+#ifdef XI86_DRV_CAP_SERVER_FD
+ XI86_DRV_CAP_SERVER_FD,
#endif
};
diff --git a/src/xf86Wacom.c b/src/xf86Wacom.c
index 3057d7a..4f41d64 100644
--- a/src/xf86Wacom.c
+++ b/src/xf86Wacom.c
@@ -578,6 +578,10 @@ static int wcmDevOpen(DeviceIntPtr pWcm)
DBG(10, priv, "\n");
+ /* If fd management is done by the server, skip common fd handling */
+ if (pInfo->flags & XI86_SERVER_FD)
+ goto got_fd;
+
/* open file, if not already open */
if (common->fd_refs == 0)
{
@@ -610,6 +614,7 @@ static int wcmDevOpen(DeviceIntPtr pWcm)
common->fd_refs++;
}
+got_fd:
/* start the tablet data */
if (model->Start && (model->Start(pInfo) != Success))
return !Success;
@@ -754,6 +759,10 @@ static void wcmDevClose(InputInfoPtr pInfo)
WacomDevicePtr priv = (WacomDevicePtr)pInfo->private;
WacomCommonPtr common = priv->common;
+ /* If fd management is done by the server, skip common fd handling */
+ if (pInfo->flags & XI86_SERVER_FD)
+ return;
+
DBG(4, priv, "Wacom number of open devices = %d\n", common->fd_refs);
if (pInfo->fd >= 0)