Since you're just repeating yourself without taking on anything that's been said, so will I: that won't work.<span></span><br><br>On Friday, July 25, 2014, Bill Spitzak <<a href="mailto:spitzak@gmail.com">spitzak@gmail.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I think the question is why both the client, the input method, and probably the compositor all have to do the decoding from keys to keysyms.<br>

<br>
Contrast this to all the work being done with libinput to translate actions on touchpads to a more useful shared form before anybody looks at it. Why is this not being done by clients, with them getting raw events and a touchpad-description file? Possibly because nobody thinks that is a good idea?<br>

<br>
I am pretty certain that it would be possible to move the shared part (basically what libxkbcommon does) into libinput, so everybody gets keysyms. It would always produce events even if there is a failure to translate, and the keycode would be in the event, so no information is ever lost, and clients could OPTIONALLY decode the stuff themselves.<br>

<br>
The current scheme I think is going to have horrendous annoying bugs when the clients, compositor, and input method get out of sync and disagree about how the keyboard works and what shift state it is in. It also makes it pretty impossible to make a remote wayland to another system using a keyboard that is not installed on the local machine.<br>

<br>
On 07/25/2014 06:06 AM, Pekka Paalanen wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Wed, 23 Jul 2014 09:46:16 +0700<br>
Trung Ngo <<a>ndtrung4419@gmail.com</a>> wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi guys,<br>
<br>
In the text protocol, there is a `keysym` event (and a corresponding<br>
`keysym` request in the input-method protocol). In the spec, it is used<br>
to 'notify when a key event was sent.' If I understand correctly then<br>
the whole point of this request/event pair is to fake a key press from<br>
the input method. If so, shouldn't it make more sense to intercept the<br>
keysym request at the compositor and send a key press event to the text<br>
application instead of passing the keysym event to the text application<br>
(no more keysym event in the text protocol)?<br>
<br>
In the current design, the text application has to listen to the keysym<br>
event (for fake keys) and implement the key handler (for 'normal' keys)<br>
at the same time, potentially duplicating code and opening up the<br>
posibility that some applications forget to implement the keysym event<br>
handler.<br>
</blockquote>
<br>
I'm no expert on input, but that is all deliberate.<br>
<br>
"Normal keys" are direct user actions, a person pressing a key on a<br>
keyboard. These originate from a real physical action, specifically a<br>
key press/release. These use key codes, which in the clients are<br>
interpreted through libxkbcommon to take account the keymap and<br>
whatnot. If a keymap does not provide some keysym, you cannot input it,<br>
AFAIU.<br>
<br>
Input methods however use whatever (even complicated) UI that lets the<br>
user to choose which symbol to enter. For instance, it can be a virtual<br>
keyboard with all kinds of exotic symbols, poked with a finger. There<br>
are no physical keys to press. Or it could be just the "compose key"<br>
mechanism. Or a machine vision system interpreting sign language.<br>
<br>
These are fundamentally very different kinds of input. We have a strict<br>
separation in the protocol design between actual physical user actions<br>
(e.g. poking a button) and "fake" events, and we intend to keep these<br>
two separated all the way. For example, wl_pointer.motion is sent only<br>
when the user moves the pointer, not when e.g. the window moves under<br>
the pointer or the pointer gets warped programmatically.<br>
<br>
The burden of implementation is in toolkits, not applications.<br>
<br>
<br>
Thanks,<br>
pq<br>
______________________________<u></u>_________________<br>
wayland-devel mailing list<br>
<a>wayland-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" target="_blank">http://lists.freedesktop.org/<u></u>mailman/listinfo/wayland-devel</a><br>
<br>
</blockquote>
______________________________<u></u>_________________<br>
wayland-devel mailing list<br>
<a>wayland-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" target="_blank">http://lists.freedesktop.org/<u></u>mailman/listinfo/wayland-devel</a><br>
</blockquote>