diff --git a/dix/touch.c b/dix/touch.c index 7207fd680..3e45e35a4 100644 --- a/dix/touch.c +++ b/dix/touch.c @@ -618,6 +618,16 @@ TouchGetPointerEventType(const InternalEvent *event) } +/** + * @returns TRUE if the specified grab or selection is the current owner of + * the touch sequence. + */ +Bool +TouchResourceIsOwner(TouchPointInfoPtr ti, XID resource) +{ + return (ti->listeners[0].listener == resource); +} + /** * Add the resource to this touch's listeners. */ diff --git a/include/input.h b/include/input.h index a6de82458..a6bdce060 100644 --- a/include/input.h +++ b/include/input.h @@ -611,6 +611,7 @@ extern Bool TouchEventHistoryAllocate(TouchPointInfoPtr ti); extern void TouchEventHistoryFree(TouchPointInfoPtr ti); extern void TouchEventHistoryPush(TouchPointInfoPtr ti, const DeviceEvent *ev); extern void TouchEventHistoryReplay(TouchPointInfoPtr ti, DeviceIntPtr dev, XID resource); +extern Bool TouchResourceIsOwner(TouchPointInfoPtr ti, XID resource); extern void TouchAddListener(TouchPointInfoPtr ti, XID resource, enum InputLevel level, enum TouchListenerType type, enum TouchListenerState state); extern Bool TouchRemoveListener(TouchPointInfoPtr ti, XID resource);