diff --git a/libweston/desktop/seat.c b/libweston/desktop/seat.c index bc6b310af..7edc23080 100644 --- a/libweston/desktop/seat.c +++ b/libweston/desktop/seat.c @@ -538,6 +538,9 @@ weston_desktop_seat_popup_grab_add_surface(struct weston_desktop_seat *seat, wl_list_insert(&seat->popup_grab.surfaces, link); + if (!seat->popup_grab.keyboard.keyboard) + return; + desktop_surface = weston_desktop_seat_popup_grab_get_topmost_surface(seat); surface = weston_desktop_surface_get_surface(desktop_surface); @@ -558,6 +561,9 @@ weston_desktop_seat_popup_grab_remove_surface(struct weston_desktop_seat *seat, struct weston_desktop_surface *desktop_surface; struct weston_surface *surface; + if (!seat->popup_grab.keyboard.keyboard) + return; + desktop_surface = weston_desktop_seat_popup_grab_get_topmost_surface(seat); surface = weston_desktop_surface_get_surface(desktop_surface);