Neil Roberts wrote:
Bill Spitzak <spit...@gmail.com> writes:

I really really think this idea should be changed. Clients should just
be prepared for excess up and down events, and excess focus in/out.
Avoiding them becomes nearly impossible as you are probably noticing,
and pretty much means the compositor must maintain the state of
*EVERY* button for *EVERY* client.

In this case the problem is that Weston is internally missing some touch
up events and it doesn't even involve the clients. Weston really needs
to know how many touch points are pressed so that it can tell if a new
touch is the first one in order to decide which surface to send the
events to. I don't think there is a good way to do this without assuming
the up and down events we get from the input driver are consistent. This
patch could help catch problems like that in future.

I think this can be solved by adding a "nothing is now pushed down" flag to the up events. When the user lets go then the low-level driver should send this fact. The compositor then knows it missed some touch-up events. It also sends the flag on to clients (even if it determined it did not miss any touch-up events) so the client can fix any screwups it did.

It is true that at the very lowest level the driver has got to get the state correct. Though in many cases I think the "no buttons are pressed" state can be detected without tracking all up/down transitions.

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to