summaryrefslogtreecommitdiff
path: root/dix/devices.c
diff options
context:
space:
mode:
authorPovilas Kanapickas <povilas@radix.lt>2020-10-10 02:51:33 +0300
committerPeter Hutterer <peter.hutterer@who-t.net>2020-11-25 04:20:21 +0000
commit56d720592155c55617728e8ddf1ba8192fe5d46c (patch)
tree9d91898aa7dc0e7a81354c8b7d0b76131c8f836a /dix/devices.c
parent5b0c5344b7131f0812bcbf070194adaa2175d150 (diff)
dix: Extract DeliverDeviceClassesChangedEvent() utility function
Diffstat (limited to 'dix/devices.c')
-rw-r--r--dix/devices.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/dix/devices.c b/dix/devices.c
index 59a4dbfee..4ac27a2d8 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -2811,3 +2811,26 @@ valuator_set_mode(DeviceIntPtr dev, int axis, int mode)
dev->valuator->axes[i].mode = mode;
}
}
+
+void
+DeliverDeviceClassesChangedEvent(int sourceid, Time time)
+{
+ DeviceIntPtr dev;
+ int num_events = 0;
+ InternalEvent dcce;
+
+ dixLookupDevice(&dev, sourceid, serverClient, DixWriteAccess);
+
+ if (!dev)
+ return;
+
+ /* UpdateFromMaster generates at most one event */
+ UpdateFromMaster(&dcce, dev, DEVCHANGE_POINTER_EVENT, &num_events);
+ BUG_WARN(num_events > 1);
+
+ if (num_events) {
+ dcce.any.time = time;
+ /* FIXME: This doesn't do anything */
+ dev->public.processInputProc(&dcce, dev);
+ }
+}