dix: Extract DeliverDeviceClassesChangedEvent() utility function

This commit is contained in:
Povilas Kanapickas 2020-10-10 02:51:33 +03:00 committed by Peter Hutterer
parent 5b0c5344b7
commit 56d7205921
4 changed files with 26 additions and 29 deletions

View File

@ -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);
}
}

View File

@ -1245,4 +1245,3 @@ CopySprite(SpritePtr src, SpritePtr dst)
dst->spriteTraceGood = src->spriteTraceGood;
return TRUE;
}

View File

@ -447,7 +447,7 @@ TouchEventHistoryReplay(TouchPointInfoPtr ti, DeviceIntPtr dev, XID resource)
if (!ti->history)
return;
TouchDeliverDeviceClassesChangedEvent(ti, ti->history[0].time, resource);
DeliverDeviceClassesChangedEvent(ti->sourceid, ti->history[0].time);
for (i = 0; i < ti->history_elements; i++) {
DeviceEvent *ev = &ti->history[i];
@ -471,30 +471,6 @@ TouchEventHistoryReplay(TouchPointInfoPtr ti, DeviceIntPtr dev, XID resource)
}
}
void
TouchDeliverDeviceClassesChangedEvent(TouchPointInfoPtr ti, Time time,
XID resource)
{
DeviceIntPtr dev;
int num_events = 0;
InternalEvent dcce;
dixLookupDevice(&dev, ti->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);
}
}
Bool
TouchBuildDependentSpriteTrace(DeviceIntPtr dev, SpritePtr sprite)
{
@ -1073,7 +1049,7 @@ TouchEmitTouchEnd(DeviceIntPtr dev, TouchPointInfoPtr ti, int flags, XID resourc
flags |= TOUCH_CLIENT_ID;
if (ti->emulate_pointer)
flags |= TOUCH_POINTER_EMULATED;
TouchDeliverDeviceClassesChangedEvent(ti, GetTimeInMillis(), resource);
DeliverDeviceClassesChangedEvent(ti->sourceid, GetTimeInMillis());
GetDixTouchEnd(&event, dev, ti, flags);
DeliverTouchEvents(dev, ti, &event, resource);
if (ti->num_grabs == 0)

View File

@ -549,6 +549,7 @@ extern int AllocXTestDevice(ClientPtr client, const char *name,
extern BOOL IsXTestDevice(DeviceIntPtr dev, DeviceIntPtr master);
extern DeviceIntPtr GetXTestDevice(DeviceIntPtr master);
extern void SendDevicePresenceEvent(int deviceid, int type);
extern void DeliverDeviceClassesChangedEvent(int sourceid, Time time);
extern _X_EXPORT InputAttributes *DuplicateInputAttributes(InputAttributes *
attrs);
extern _X_EXPORT void FreeInputAttributes(InputAttributes * attrs);
@ -612,8 +613,6 @@ extern int TouchListenerAcceptReject(DeviceIntPtr dev, TouchPointInfoPtr ti,
extern int TouchAcceptReject(ClientPtr client, DeviceIntPtr dev, int mode,
uint32_t touchid, Window grab_window, XID *error);
extern void TouchEndPhysicallyActiveTouches(DeviceIntPtr dev);
extern void TouchDeliverDeviceClassesChangedEvent(TouchPointInfoPtr ti,
Time time, XID resource);
extern void TouchEmitTouchEnd(DeviceIntPtr dev, TouchPointInfoPtr ti, int flags, XID resource);
extern void TouchAcceptAndEnd(DeviceIntPtr dev, int touchid);