summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Xi/stubs.c2
-rw-r--r--config/config.c2
-rw-r--r--config/dbus.c2
-rw-r--r--dix/devices.c2
-rw-r--r--hw/dmx/dmxinput.c2
-rw-r--r--hw/kdrive/linux/evdev.c4
-rw-r--r--hw/xfree86/common/xf86Module.h2
-rw-r--r--hw/xfree86/common/xf86Xinput.c8
-rw-r--r--hw/xquartz/darwinXinput.c2
-rw-r--r--include/input.h6
10 files changed, 18 insertions, 14 deletions
diff --git a/Xi/stubs.c b/Xi/stubs.c
index 04ba9769e..8285549cf 100644
--- a/Xi/stubs.c
+++ b/Xi/stubs.c
@@ -241,6 +241,6 @@ NewInputDeviceRequest(InputOption *options, InputAttributes *attrs,
*
*/
void
-DeleteInputDeviceRequest(DeviceIntPtr dev)
+DeleteInputDeviceRequest(DeviceIntPtr dev, int flags)
{
}
diff --git a/config/config.c b/config/config.c
index 65ef67987..f49420d0e 100644
--- a/config/config.c
+++ b/config/config.c
@@ -81,7 +81,7 @@ remove_device(const char *backend, DeviceIntPtr dev)
* already been removed. */
OsBlockSignals();
ProcessInputEvents();
- DeleteInputDeviceRequest(dev);
+ DeleteInputDeviceRequest(dev, 0);
OsReleaseSignals();
}
diff --git a/config/dbus.c b/config/dbus.c
index 72a0a05dd..511908ac1 100644
--- a/config/dbus.c
+++ b/config/dbus.c
@@ -226,7 +226,7 @@ remove_device(DBusMessage *message, DBusMessage *reply, DBusError *error)
* already been removed. */
OsBlockSignals();
ProcessInputEvents();
- DeleteInputDeviceRequest(dev);
+ DeleteInputDeviceRequest(dev, 0);
OsReleaseSignals();
ret = Success;
diff --git a/dix/devices.c b/dix/devices.c
index cf23bc6d0..27840240d 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -891,7 +891,7 @@ CloseDeviceList(DeviceIntPtr *listHead)
while (dev != NULL)
{
freedIds[dev->id] = TRUE;
- DeleteInputDeviceRequest(dev);
+ DeleteInputDeviceRequest(dev, DEVICE_REMOVE_ALL);
dev = *listHead;
while (dev != NULL && freedIds[dev->id])
diff --git a/hw/dmx/dmxinput.c b/hw/dmx/dmxinput.c
index 568bb882b..eceb25163 100644
--- a/hw/dmx/dmxinput.c
+++ b/hw/dmx/dmxinput.c
@@ -114,6 +114,6 @@ NewInputDeviceRequest (InputOption *options, InputAttributes *attrs,
}
void
-DeleteInputDeviceRequest(DeviceIntPtr pDev)
+DeleteInputDeviceRequest(DeviceIntPtr pDev, int flags)
{
}
diff --git a/hw/kdrive/linux/evdev.c b/hw/kdrive/linux/evdev.c
index 3797f0926..cb16176c7 100644
--- a/hw/kdrive/linux/evdev.c
+++ b/hw/kdrive/linux/evdev.c
@@ -165,7 +165,7 @@ EvdevPtrRead (int evdevPort, void *closure)
n = read (evdevPort, &events, NUM_EVENTS * sizeof (struct input_event));
if (n <= 0) {
if (errno == ENODEV)
- DeleteInputDeviceRequest(pi->dixdev);
+ DeleteInputDeviceRequest(pi->dixdev, 0);
return;
}
@@ -375,7 +375,7 @@ EvdevKbdRead (int evdevPort, void *closure)
n = read (evdevPort, &events, NUM_EVENTS * sizeof (struct input_event));
if (n <= 0) {
if (errno == ENODEV)
- DeleteInputDeviceRequest(ki->dixdev);
+ DeleteInputDeviceRequest(ki->dixdev, 0);
return;
}
diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h
index d61758f78..51b9b16a3 100644
--- a/hw/xfree86/common/xf86Module.h
+++ b/hw/xfree86/common/xf86Module.h
@@ -83,7 +83,7 @@ typedef enum {
*/
#define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4)
#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(8, 0)
-#define ABI_XINPUT_VERSION SET_ABI_VERSION(10, 0)
+#define ABI_XINPUT_VERSION SET_ABI_VERSION(11, 0)
#define ABI_EXTENSION_VERSION SET_ABI_VERSION(4, 0)
#define ABI_FONT_VERSION SET_ABI_VERSION(0, 6)
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 356ddab4c..b30ebbb1c 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -854,7 +854,7 @@ unwind:
}
void
-DeleteInputDeviceRequest(DeviceIntPtr pDev)
+DeleteInputDeviceRequest(DeviceIntPtr pDev, int flags)
{
LocalDevicePtr pInfo = (LocalDevicePtr) pDev->public.devicePrivate;
InputDriverPtr drv = NULL;
@@ -874,9 +874,9 @@ DeleteInputDeviceRequest(DeviceIntPtr pDev)
if (!isMaster && pInfo != NULL)
{
if(drv->UnInit)
- drv->UnInit(drv, pInfo, 0);
+ drv->UnInit(drv, pInfo, flags);
else
- xf86DeleteInput(pInfo, 0);
+ xf86DeleteInput(pInfo, flags);
/* devices added through HAL aren't in the config layout */
it = xf86ConfigLayout.inputs;
@@ -1267,7 +1267,7 @@ xf86DisableDevice(DeviceIntPtr dev, Bool panic)
} else
{
SendDevicePresenceEvent(dev->id, DeviceUnrecoverable);
- DeleteInputDeviceRequest(dev);
+ DeleteInputDeviceRequest(dev, 0);
}
}
diff --git a/hw/xquartz/darwinXinput.c b/hw/xquartz/darwinXinput.c
index 90e440e54..59ca6273d 100644
--- a/hw/xquartz/darwinXinput.c
+++ b/hw/xquartz/darwinXinput.c
@@ -245,7 +245,7 @@ NewInputDeviceRequest(InputOption *options, InputAttributes *attrs,
*
*/
void
-DeleteInputDeviceRequest(DeviceIntPtr dev)
+DeleteInputDeviceRequest(DeviceIntPtr dev, int flags)
{
DEBUG_LOG("DeleteInputDeviceRequest(%p)\n", dev);
}
diff --git a/include/input.h b/include/input.h
index c68a28441..5426c44a0 100644
--- a/include/input.h
+++ b/include/input.h
@@ -62,6 +62,9 @@ SOFTWARE.
#define DEVICE_OFF 2
#define DEVICE_CLOSE 3
+/* DeleteInputDeviceRequest flags */
+#define DEVICE_REMOVE_ALL (1 << 0) /* all devices will be removed */
+
#define POINTER_RELATIVE (1 << 1)
#define POINTER_ABSOLUTE (1 << 2)
#define POINTER_ACCELERATE (1 << 3)
@@ -536,7 +539,8 @@ extern _X_EXPORT int NewInputDeviceRequest(
InputAttributes *attrs,
DeviceIntPtr *dev);
extern _X_EXPORT void DeleteInputDeviceRequest(
- DeviceIntPtr dev);
+ DeviceIntPtr dev,
+ int flags);
extern _X_EXPORT void DDXRingBell(
int volume,