diff options
author | Povilas Kanapickas <povilas@radix.lt> | 2020-10-10 02:51:33 +0300 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2020-11-25 04:20:21 +0000 |
commit | 56d720592155c55617728e8ddf1ba8192fe5d46c (patch) | |
tree | 9d91898aa7dc0e7a81354c8b7d0b76131c8f836a /dix/devices.c | |
parent | 5b0c5344b7131f0812bcbf070194adaa2175d150 (diff) |
dix: Extract DeliverDeviceClassesChangedEvent() utility function
Diffstat (limited to 'dix/devices.c')
-rw-r--r-- | dix/devices.c | 23 |
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); + } +} |