Without this, weston will segfault whenever the focus is a non-client surface such as the black surface in fullscreen. --- src/input.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/input.c b/src/input.c index 6637882..b6130d6 100644 --- a/src/input.c +++ b/src/input.c @@ -332,7 +332,8 @@ default_grab_keyboard_modifiers(struct weston_keyboard_grab *grab, wl_keyboard_send_modifiers(resource, serial, mods_depressed, mods_latched, mods_locked, group); } - if (pointer && pointer->focus && pointer->focus->surface != keyboard->focus) { + if (pointer && pointer->focus && pointer->focus->surface->resource && + pointer->focus->surface != keyboard->focus) { struct wl_client *pointer_client = wl_resource_get_client(pointer->focus->surface->resource); send_modifiers_to_client_in_list(pointer_client, @@ -1440,11 +1441,13 @@ should_send_modifiers_to_client(struct weston_seat *seat, { if (seat->keyboard && seat->keyboard->focus && + seat->keyboard->focus->resource && wl_resource_get_client(seat->keyboard->focus->resource) == client) return 1; if (seat->pointer && seat->pointer->focus && + seat->pointer->focus->surface->resource && wl_resource_get_client(seat->pointer->focus->surface->resource) == client) return 1; -- 1.8.3.1 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel