[PATCH weston] compositor-wayland: handle wl_keyboard.enter(NULL)

Daniel Stone daniel at fooishbar.org
Fri Mar 9 10:08:57 UTC 2018


Hi Pekka,

On 22 February 2018 at 14:54, Pekka Paalanen <ppaalanen at gmail.com> wrote:
> Destroying an output (wl_surface) can race against the parent compositor
> sending wl_keyboard.enter. When this race is lost, wayland-backend
> receives wl_keyboard.enter with a NULL wl_surface for the surface it
> just destroyed.
>
> Handle this case by ignoring such enter events. Since it is
> theoretically possible to follow enter with key events, drop those too.
>
> The modifiers event is sent before enter, so we cannot drop that on the
> same condition.
>
> wl_keyboard.leave handler seems to already handle the NULL focus case,
> but there is a question if the notify_keyboard_focus_out() call should
> be avoided.
>
> This patch fixes a hard to reproduce crash. I was running weston/x11
> with two outputs, and weston/wayland --sprawl inside that, then closing
> the parent compositor windows one by one. Sometimes it would trigger
> this crash.

Thanks! This looks good to me. Whilst looking, I noticed pointer had a
similar issue, so I've just sent a patch for that now.

Cheers,
Daniel


More information about the wayland-devel mailing list