diff --git a/libweston/compositor-wayland.c b/libweston/compositor-wayland.c index c6b92611..9c401d2e 100644 --- a/libweston/compositor-wayland.c +++ b/libweston/compositor-wayland.c @@ -1858,6 +1858,11 @@ input_handle_keyboard_enter(void *data, weston_output_schedule_repaint(&focus->base); } + if (!surface) { + input->keyboard_focus = NULL; + return; + } + input->keyboard_focus = wl_surface_get_user_data(surface); input->keyboard_focus->keyboard_count++; @@ -1907,6 +1912,9 @@ input_handle_key(void *data, struct wl_keyboard *keyboard, struct wayland_input *input = data; struct timespec ts; + if (!input->keyboard_focus) + return; + timespec_from_msec(&ts, time); input->key_serial = serial;