XI2 pointer emulation in more detail

Peter Hutterer peter.hutterer at who-t.net
Tue Nov 20 14:46:16 PST 2012


please don't cut the email out completely, it's hard to reference to
the relevant sections.

On Tue, Nov 20, 2012 at 09:02:16AM -0600, Daniel Drake wrote:
> On Mon, Nov 19, 2012 at 12:17 AM, Peter Hutterer
> <peter.hutterer at who-t.net> wrote:
> > no, this sounds like a bug. pointer emulation behaviour should be that only
> > the first emulating touchpoint changes the pointer position, with subsequent
> > touches not emulating. and a touchpoint is only emulating if there is no
> > other touch point on that device when it starts.
> >
> > I might need more details though, how are you placing the pointer? with
> > a mouse?
> 
> Yes, the pointer is being placed with a mouse. The OLPC XO laptop in
> question has both a touchscreen and a touchpad.
> 
> In these tests I am only touching the screen with 1 finger at any one
> time. I think your reply might have included multi-touch
> considerations (what is a "subsequent touch"?), but I'm not venturing
> there yet.

in this context it meant that a touch emulates pointer events if it is the
first touch at TouchBegin time. that touch continues to emulate
until TouchEnd, regardless of any other touches.

however, if you put one finger down (emulating), a second finger down
(not-emulating), then lift the first finger and put it down again, that same
finger won't emulate pointer events now (as the second finger is still
down)

> I think you may be suggesting here that having screen touches move the
> mouse cursor is by design. Unfortunately that leads to the awkward
> hover behaviour and confusing touchscreen user experience outlined in
> my original mail. Is there anything on the horizon that might improve
> this?

_where_ you touch is irrelevant, and in fact we decide on whether a touch
point is emulating well before we look at where to deliver the touchpoint.

I've read the http://bugs.sugarlabs.org/ticket/4068 report and the real
issue here appears to be that the sprite isn't updated to the new position
on the brief touch you described. 

Thomas Jaeger's "Update the MD's position when a touch event is received"
should have fixed that part though I noticed you have that patch in the tree
already and the issue still occurs.

I'd appreciate it if you could write up a simple test case for this so I can
reproduce this. 

Cheers,
   Peter



More information about the xorg mailing list