mi: Ensure pointer emulating touch events update the sprite

Different miPointerSpriteFuncRec implementations do a varying
business at ultimately calling miPointerUpdateSprite(), this
particularly fails when using the plain mi sprite on touch events,
where the sprite is just moved/updated on cursor changes.

So, ensure miPointerUpdateSprite() is called generically for
pointer emulating touch events as with regular motion events.

Signed-off-by: Carlos Garnacho <carlosg@gnome.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Carlos Garnacho 2012-12-19 18:42:38 +01:00 committed by Peter Hutterer
parent 8f4820be7a
commit 0fbd779a82

View File

@ -627,7 +627,11 @@ mieqProcessInputEvents(void)
mieqProcessDeviceEvent(dev, &event, screen);
/* Update the sprite now. Next event may be from different device. */
if (event.any.type == ET_Motion && master)
if (master &&
(event.any.type == ET_Motion ||
((event.any.type == ET_TouchBegin ||
event.any.type == ET_TouchUpdate) &&
event.device_event.flags & TOUCH_POINTER_EMULATED)))
miPointerUpdateSprite(dev);
#ifdef XQUARTZ