mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-05-15 06:38:07 +02:00
compositor: fix a crash on missing keyboard device
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
This commit is contained in:
parent
43e1ba8073
commit
bdc7cd06d1
1 changed files with 12 additions and 9 deletions
|
|
@ -1656,16 +1656,19 @@ weston_surface_activate(struct weston_surface *surface,
|
|||
{
|
||||
struct weston_compositor *compositor = seat->compositor;
|
||||
|
||||
wl_keyboard_set_focus(seat->seat.keyboard, &surface->surface);
|
||||
wl_data_device_set_keyboard_focus(&seat->seat);
|
||||
if (seat->seat.keyboard) {
|
||||
wl_keyboard_set_focus(seat->seat.keyboard, &surface->surface);
|
||||
wl_data_device_set_keyboard_focus(&seat->seat);
|
||||
|
||||
if (seat->seat.keyboard->focus_resource) {
|
||||
wl_keyboard_send_modifiers(seat->seat.keyboard->focus_resource,
|
||||
wl_display_next_serial(compositor->wl_display),
|
||||
seat->xkb_state.mods_depressed,
|
||||
seat->xkb_state.mods_latched,
|
||||
seat->xkb_state.mods_locked,
|
||||
seat->xkb_state.group);
|
||||
if (seat->seat.keyboard->focus_resource) {
|
||||
wl_keyboard_send_modifiers(
|
||||
seat->seat.keyboard->focus_resource,
|
||||
wl_display_next_serial(compositor->wl_display),
|
||||
seat->xkb_state.mods_depressed,
|
||||
seat->xkb_state.mods_latched,
|
||||
seat->xkb_state.mods_locked,
|
||||
seat->xkb_state.group);
|
||||
}
|
||||
}
|
||||
|
||||
wl_signal_emit(&compositor->activate_signal, surface);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue