Personally I am very worried about clients doing this.

My main concern is clients acting differently than each other. This will happen even if every one of them is using a carefully written toolkit that implements all defined wayland behavior because they may be running on different hosts with different versions of that toolkit. And unless you are living in fantasy land you will know that there will be clients that are not using perfect toolkits.

Also it makes it extremely difficult to remote to a host using a different window system (rdp) that makes the opposite assumption, because you have to "uncook" the events and then rely on the client recooking them back to the same thing the use did on that host. Anybody using NX will know this is a problem even between two X servers due to it attempting to uncook keysyms into the scancodes used by the remote server.

A literal interpretation of having the client do it all means you cannot add a new type of hardware and have it emulate a mouse for software that does not know about this new type of hardware.

In fact I think wayland should fully mark events with all kinds of information, like "this is probably a double-click" and "the user has dragged the mouse enough that it is not a click" and "the user has been holding the mouse still long enough that you should do a hover event", and everything else anybody can think of. Slight differences between applications in deriving this information is a problem even on Windows.

It should be possible for a client to retrieve the raw events (if they really exist at all, they won't in the rdp scenario). This mostly means that any input processing cannot eat or delay an event, it must replace it with something. And attaching the raw event info to it may be a good idea.

Wayland is already "cooking" events, such as doing some of the keyboard translation, the input methods, on-screen keyboards, the mapping of other devices to the "seat pointer", the entire touch/gesture api, etc. So I also see no reason to make repeat a special case.

Rui Tiago Cação Matos wrote:
Hi,

just replying to this part:

On 15 October 2013 22:05, Matthias Clasen <matthias.cla...@gmail.com> wrote:
- input tweaks like slow keys or bounce keys or hover-to-click naturally fit
in the event dispatching in the compositor

In the same spirit of having key repeat on the client side, I think
that slow, bounce and sticky keys should also be implemented by the
clients. Doing these on the compositor would in particular make things
more complex for xwayland which (I assume) should continue to provide
these features for X clients while being a regular wl_keyboard client
itself.

MouseKeys though, seems like it can be implemented in the wayland
compositor and we should probably remove the functionality from
xwayland. Hover-to-click can be done in the compositor as well.

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

Reply via email to