input: when destroying a seat, remove keyboard focus first

If we destroy all the devices before trying to remove keyboard focus
we'll segfault because we destroyed the keyboard.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Ryo Munakata <ryomnktml@gmail.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
dev
Derek Foreman 9 years ago committed by Bryce Harrington
parent 74a635b1ec
commit 87c862a9d9
  1. 3
      src/libinput-seat.c

@ -383,9 +383,10 @@ udev_seat_destroy(struct udev_seat *seat)
struct weston_keyboard *keyboard =
weston_seat_get_keyboard(&seat->base);
udev_seat_remove_devices(seat);
if (keyboard)
notify_keyboard_focus_out(&seat->base);
udev_seat_remove_devices(seat);
weston_seat_release(&seat->base);
wl_list_remove(&seat->output_create_listener.link);
free(seat);

Loading…
Cancel
Save