diff options
-rw-r--r-- | src/wcmConfig.c | 5 | ||||
-rw-r--r-- | src/xf86Wacom.c | 9 |
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) |