Rename TouchEnsureSprite to TouchBuildSprite and event type checks
The function will be used for building a sprite for pointer emulation after an explicit device grab. This commit refactors the code so that TouchBuildSprite will function with any event type and moves the checks to the caller. Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
committed by
Chase Douglas
parent
2efbed23c2
commit
3d06bfe93d
14
dix/touch.c
14
dix/touch.c
@@ -542,22 +542,12 @@ TouchBuildDependentSpriteTrace(DeviceIntPtr dev, SpritePtr sprite)
|
||||
* TouchBegin events.
|
||||
*/
|
||||
Bool
|
||||
TouchEnsureSprite(DeviceIntPtr sourcedev, TouchPointInfoPtr ti,
|
||||
InternalEvent *ev)
|
||||
TouchBuildSprite(DeviceIntPtr sourcedev, TouchPointInfoPtr ti,
|
||||
InternalEvent *ev)
|
||||
{
|
||||
TouchClassPtr t = sourcedev->touch;
|
||||
SpritePtr sprite = &ti->sprite;
|
||||
|
||||
/* We may not have a sprite if there are no applicable grabs or
|
||||
* event selections, or if they've disappeared, or if all the grab
|
||||
* owners have rejected the touch. Don't bother delivering motion
|
||||
* events if not, but TouchEnd events still need to be processed so
|
||||
* we can call FinishTouchPoint and release it for later use. */
|
||||
if (ev->any.type == ET_TouchEnd)
|
||||
return TRUE;
|
||||
else if (ev->any.type != ET_TouchBegin)
|
||||
return (sprite->spriteTraceGood > 0);
|
||||
|
||||
if (t->mode == XIDirectTouch) {
|
||||
/* Focus immediately under the touchpoint in direct touch mode.
|
||||
* XXX: Do we need to handle crossing screens here? */
|
||||
|
||||
Reference in New Issue
Block a user