compositor-drm, evdev: don't crash on missing keyboard
Weston's notify_keyboard_focus_*() assume that a keyboard is present, if
they are called. With evdev, there might not always be a keyboard.
Also clean up the variable definition in evdev_notify_keyborad_focus().
I read that function through many times and finally had to grep where
does 'all_keys' come from.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index eab5f5c..bcd8aac 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -2012,7 +2012,8 @@
wl_list_for_each_safe(device, next, &seat->devices_list, link)
evdev_input_device_destroy(device);
- notify_keyboard_focus_out(&seat->base.seat);
+ if (seat->base.seat.keyboard)
+ notify_keyboard_focus_out(&seat->base.seat);
}
static void