Hi,<br><br>On Thursday, November 13, 2014, Giulio Camuffo <<a href="mailto:giuliocamuffo@gmail.com">giuliocamuffo@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">2014-11-13 12:06 GMT+02:00 Daniel Stone <<a href="javascript:;" onclick="_e(event, 'cvml', 'daniel@fooishbar.org')">daniel@fooishbar.org</a>>:<br>
> But this is just a client issue, and nothing in sending the full keys array<br>
> precludes this working.<br>
><br>
> If Alt+X is a modifier (i.e. any time Alt+X is held, pressing Y triggers the<br>
> shortcut), then the client can use the keys array to notice this, and ensure<br>
> the shortcut is fired.<br>
><br>
> If Alt+(X+Y) is a cumulative shortcut, then the client knows from seeing X<br>
> in the enter array but not a key event, that it must wait for a release on X<br>
> before it arms the shortcut for Y.<br>
<br>
But no, because, when the focus isn't switched, there is no enter<br>
event and no keys array. The client has no idea X was pressed, so it<br>
can't possibly trigger the binding.<br>
So without the patch this is not consistent. Depending on whether the<br>
compositor binding switches the focus, the client binding works or it<br>
doesn't work.</blockquote><div><br></div><div>A problem we can solve by switching the focus. ;) I agree that it's annoying to always do this for every hotkey, so we could introduce a new wl_keyboard::leave_temporary which would inform the client that it's about to get another enter event very shortly, but shouldn't redraw itself insensitive or anything.</div><div><br></div><div>Alternately, we could bump the wl_keyboard version to just allow for consecutive enter events and never send a leave in these temporal cases.</div><div><br></div><div>For older clients, we can just send leave/enter and they can suck it up.</div><br>Either way, it makes things more predictable and allows clients to work out what's best.<div><br></div><div>Cheers,</div><div>Daniel</div>