[PATCH weston] input: don't send to clients key events eaten by bindings
giuliocamuffo at gmail.com
Tue Nov 18 08:54:04 PST 2014
2014-11-13 13:30 GMT+02:00 Daniel Stone <daniel at fooishbar.org>:
> On Thursday, November 13, 2014, Giulio Camuffo <giuliocamuffo at gmail.com>
>> 2014-11-13 12:06 GMT+02:00 Daniel Stone <daniel at fooishbar.org>:
>> > But this is just a client issue, and nothing in sending the full keys
>> > array
>> > precludes this working.
>> > If Alt+X is a modifier (i.e. any time Alt+X is held, pressing Y triggers
>> > the
>> > shortcut), then the client can use the keys array to notice this, and
>> > ensure
>> > the shortcut is fired.
>> > If Alt+(X+Y) is a cumulative shortcut, then the client knows from seeing
>> > X
>> > in the enter array but not a key event, that it must wait for a release
>> > on X
>> > before it arms the shortcut for Y.
>> But no, because, when the focus isn't switched, there is no enter
>> event and no keys array. The client has no idea X was pressed, so it
>> can't possibly trigger the binding.
>> So without the patch this is not consistent. Depending on whether the
>> compositor binding switches the focus, the client binding works or it
>> doesn't work.
> 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.
> Alternately, we could bump the wl_keyboard version to just allow for
> consecutive enter events and never send a leave in these temporal cases.
Do we really need to bump the version? The description of
wl_keyboard.leave says " Notification that this seat's keyboard focus
is on a certain surface.", it doesn't say the leave and enter events
always go in pair, so it seems to me we can just send the new enters
without changing anything.
> For older clients, we can just send leave/enter and they can suck it up.
> Either way, it makes things more predictable and allows clients to work out
> what's best.
More information about the wayland-devel