[PATCH weston] input: don't send to clients key events eaten by bindings

Pekka Paalanen ppaalanen at gmail.com
Mon Nov 24 06:08:51 PST 2014


On Fri, 21 Nov 2014 18:34:32 +0000
Daniel Stone <daniel at fooishbar.org> wrote:

> Hi,
> 
> On 21 November 2014 08:57, Pekka Paalanen <ppaalanen at gmail.com> wrote:
> 

> > > > I agree 100%. Again, think of nesting compositors: why should our
> > compositor
> > > > behave completely different if it's nested? The more difficult we make
> > it to
> > > > sensibly nest compositors, the more we're shooting ourselves in the
> > foot.
> > >
> > > Ok, now you got me confused. Wasn't this what you said would be the
> > > correct way to handle bindings?
> >
> > Yeah, I'm confused too.
> >
> > I tried to think of a stack of:
> >         evdev <- Weston <- nested (compositor) <- app
> > and the different cases of how Weston behaves towards nested vs. OS
> > (e.g. VT-switching) behaves towards Weston, and I'm not sure I see what
> > nested would need to do differently from weston with what I thought.
> >
> 
> I tried to write out the case that made me nervous in my head, but
> couldn't. I'm not sure if that's because it's not actually a real problem,
> or I'm just far too tired.
> 
> 
> > So how should it work?
> >
> > I would still assume, that if I press Mod+s to take a screenshot, I
> > wouldn't want the 's' to appear on the terminal that happened to have
> > the keyboard focus when Mod went down. If the terminal had a Mod+s
> > shortcut too, should it run or not?
> >
> > That is, if all of Weston, nested, and app happened to have the same
> > shortcut, should all three fire, or only Weston's?
> >
> 
> Only Weston.
> 
> All three need to obey the same rule:
>   - when triggering a hotkey, steal the focus and do _not_ send key events
>   - when the grab is ended, send the focus back to the client with the
> true, correct, and full keyboard state in enter
>   - on an enter event, update internal state but do _not_ trigger actions
> or hotkeys because of it

Makes perfect sense, this and your other replies. "Steal focus" means
sending wl_keyboard.leave to the current focus, right?


Thanks,
pq


More information about the wayland-devel mailing list