compositor: fix a crash on missing keyboard device

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
This commit is contained in:
Pekka Paalanen
2012-06-07 15:07:07 +03:00
committed by Kristian Høgsberg
parent 43e1ba8073
commit bdc7cd06d1
+12 -9
View File
@@ -1656,16 +1656,19 @@ weston_surface_activate(struct weston_surface *surface,
{ {
struct weston_compositor *compositor = seat->compositor; struct weston_compositor *compositor = seat->compositor;
wl_keyboard_set_focus(seat->seat.keyboard, &surface->surface); if (seat->seat.keyboard) {
wl_data_device_set_keyboard_focus(&seat->seat); wl_keyboard_set_focus(seat->seat.keyboard, &surface->surface);
wl_data_device_set_keyboard_focus(&seat->seat);
if (seat->seat.keyboard->focus_resource) { if (seat->seat.keyboard->focus_resource) {
wl_keyboard_send_modifiers(seat->seat.keyboard->focus_resource, wl_keyboard_send_modifiers(
wl_display_next_serial(compositor->wl_display), seat->seat.keyboard->focus_resource,
seat->xkb_state.mods_depressed, wl_display_next_serial(compositor->wl_display),
seat->xkb_state.mods_latched, seat->xkb_state.mods_depressed,
seat->xkb_state.mods_locked, seat->xkb_state.mods_latched,
seat->xkb_state.group); seat->xkb_state.mods_locked,
seat->xkb_state.group);
}
} }
wl_signal_emit(&compositor->activate_signal, surface); wl_signal_emit(&compositor->activate_signal, surface);