Xi: send DeviceChangedEvents when the scroll valuators change value
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
This commit is contained in:
parent
1f4af6c12f
commit
4bb5d8fae4
|
@ -1103,6 +1103,8 @@ SetScrollValuator(DeviceIntPtr dev, int axnum, enum ScrollType type, double incr
|
|||
{
|
||||
AxisInfoPtr ax;
|
||||
int *current_ax;
|
||||
InternalEvent dce;
|
||||
DeviceIntPtr master;
|
||||
|
||||
if (!dev || !dev->valuator || axnum >= dev->valuator->numAxes)
|
||||
return FALSE;
|
||||
|
@ -1139,7 +1141,16 @@ SetScrollValuator(DeviceIntPtr dev, int axnum, enum ScrollType type, double incr
|
|||
ax->scroll.type = type;
|
||||
ax->scroll.increment = increment;
|
||||
ax->scroll.flags = flags;
|
||||
/* FIXME: generate DeviceChanged Events */
|
||||
|
||||
master = GetMaster(dev, MASTER_ATTACHED);
|
||||
CreateClassesChangedEvent(&dce, master, dev, DEVCHANGE_POINTER_EVENT | DEVCHANGE_DEVICE_CHANGE);
|
||||
XISendDeviceChangedEvent(dev, &dce.changed_event);
|
||||
|
||||
/* if the current slave is us, update the master. If not, we'll update
|
||||
* whenever the next slave switch happens anyway. CMDC sends the event
|
||||
* for us */
|
||||
if (master && master->lastSlave == dev)
|
||||
ChangeMasterDeviceClasses(master, &dce.changed_event);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue